In MYSQL, each user reads one record in three ways (group by xxx) and asks me about the SQL statements in this regard. I remember it specially, after all, this is also quite common [SQL] select * from (select * from member_payment order by id desc) t group by member_id limit 10 first is to sort first, then group, in this way, you can obtain the most suitable data. Obvious disadvantages: Using temporary; Using filesort [SQL] select s. * from (SELECT max (id) as id FROM 'Member _ payment' group by 'Member _ id' limit 10) t left join 'Member _ payment' as s on t. id = s. id: The second type is the Union Query [SQL] select * from 'Member _ payment 'where EXISTS (select 'id' from (SELECT max ('id ') as id FROM 'Member _ payment' group by 'Member _ id' limit 10) t where t. 'id' = 'Member _ payment '. 'id') The third type is subquery stealing, which is the second type with the highest efficiency.