我在2张桌子上有一个内连接。
考虑
表1
sid name
1 abc
2 xyz
表2
sdid sid detailname
1 1 a
2 1 b
3 2 x
所以我的查询如下所示
SELECT *
FROM table1 t1
INNER JOIN table2 t2
ON t1.sid=t2.sid
我得到的结果是
sid name sdid sid detailname
1 abc 1 1 a
1 abc 2 1 b
2 xyz 3 2 x
我想修改此查询以获取表2中最高的'sdid'
我的最终结果应该是
sid name sdid sid detailname
1 abc 2 1 b
2 xyz 3 2 x
答案 0 :(得分:2)
在join
中再包含一个子查询,以获取table2中每个sid的最大sdid。
SELECT t1.sid,t1.name,t2.sdid,t2.sid,t2.detailname
FROM table1 t1
INNER JOIN table2 t2 ON t1.sid=t2.sid
INNER JOIN (select max(sdid) as maxsdid, sid from table2 group by sid) t21
ON t21.sid=t2.sid and t21.sdid = t2.sdid