Chcete skupinové maximum ; v podstatě seskupte tabulku plateb, abyste identifikovali maximální záznamy, a poté výsledek spojte zpět se sebou, abyste získali další sloupce:
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
Všimněte si, že MAX(id)
nemusí být „poslední platba ", v závislosti na vaší aplikaci a schématu:obvykle je lepší určit "nejnovější " na základě TIMESTAMP
než založené na syntetických identifikátorech, jako je AUTO_INCREMENT
sloupec primárního klíče.