id manager_id name
1 1 Tony
2 2 smith
3 2 harry
4 1 jack
5 1 william
6 2 steve
7 2 bruce
8 2 john
我需要最后一个id 6,7,8。 怎么弄到那个?
您可以使用NOT exists来执行此操作:
select t.*
from tablename t
where not exists (
select 1 from tablename
where manager_id <> t.manager_id and id > t.id
);
请参阅演示。
结果:
| id | manager_id | name |
| --- | ---------- | ----- |
| 6 | 2 | steve |
| 7 | 2 | bruce |
| 8 | 2 | john |