Искате групов максимум ; по същество групирайте таблицата за плащания, за да идентифицирате максималните записи, след което свържете резултата обратно със себе си, за да извлечете другите колони:
SELECT users.*, payments.method, payments.id AS payment_id
FROM payments NATURAL JOIN (
SELECT user_id, MAX(id) AS id
FROM payments
GROUP BY user_id
) t RIGHT JOIN users ON users.id = t.user_id
Обърнете внимание, че MAX(id)
може да не е „последното плащане ", в зависимост от вашето приложение и схема:обикновено е по-добре да определите "най-новото " въз основа на TIMESTAMP
отколкото на базата на синтетични идентификатори като AUTO_INCREMENT
колона първичен ключ.