Anda ingin maksimum grup ; intinya, kelompokkan tabel pembayaran untuk mengidentifikasi catatan maksimal, lalu gabungkan kembali hasilnya dengan dirinya sendiri untuk mengambil kolom lainnya:
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
Perhatikan bahwa MAX(id)
mungkin bukan "pembayaran terbaru ", bergantung pada aplikasi dan skema Anda:biasanya lebih baik menentukan "terbaru " berdasarkan TIMESTAMP
daripada berdasarkan pengenal sintetis seperti AUTO_INCREMENT
kolom kunci utama.