你要分组最大值 ;
本质上,将付款表分组以标识最大记录,然后将结果与其自身重新结合以获取其他列:
SELECt users.*, payments.method, payments.id AS payment_idFROM 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主键列之类的综合标识符。



