My previous colleagues asked me about the SQL statements in this regard. I remember it specially. After all, this is also quite common.
Copy codeThe Code is as follows:
Select * from (select * from member_payment
Order by id desc) t group by member_id limit 10
The first type is sorting first and then group. In this way, you can naturally obtain the most suitable data.
Obvious disadvantages: Using temporary; Using filesort
Copy codeThe Code is as follows:
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
Second, joint Query
Copy codeThe Code is as follows:
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 is subquery.
The second is the most efficient.