我真的不知道如何正确地命名这个问题。
表格结构如下:

ID | CLIENT_ID | …

ID是主增量和自动增量。CLIENT_ID另一方面,可以多次发生。
我想要的是通过CLIENT_ID和最高的ID来获取行。。。举个例子
ID | CLIENT_ID
1  | 1
2  | 1
3  | 2
4  | 3
5  | 2

所以这里CLIENT_ID1和2出现多次(因为有一个更新的版本)。
查询后,我希望结果中有以下IDs:2,4,5(因为ID1行中的最高CLIENT_IDID2行,依此类推)

最佳答案

如果需要所有列,可以在

 select * from my_table
 where (id, client_id) in ( select max(id), client_id
                            from my_table
                            group by client_id);

但如果你只需要身份证
 select id  from my_table
 where (id, client_id) in ( select max(id), client_id
                            from my_table
                            group by client_id);

或者更简单
   select max(id)
   from my_table
   group by client_id;

关于mysql - SQL根据两个ID获取行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38512045/

10-12 12:45
查看更多