@Select("select DISTINCT b.*, a.sum " +
"from (SELECT * FROM wage WHERE wid IN " +
"(SELECT MAX(wid) FROM wage GROUP BY sid)) a " +
"left join (select * from staff) b on a.sid = b.sid")
先(SELECT MAX(wid) FROM wage GROUP BY sid) 将薪水表根据外键 员工id来分组 并且查出每个组中最大的值;
SELECT * FROM wage WHERE wid IN " + "(SELECT MAX(wid) FROM wage GROUP BY sid) 查出的结果后给wid进行比较 选择当前行
后面的就是join多表查询了
参考链接:
https://www.dazhuanlan.com/2019/12/23/5e002da115bb0/ https://www.jianshu.com/p/694fb2c75ecd
本文深入探讨了一种复杂的SQL查询,通过使用子查询找到每个员工的最高工资记录,然后通过LEFT JOIN与员工表进行连接,获取详细信息。此查询涉及分组聚合、子查询和多表连接,对于理解高级SQL操作具有指导意义。
1万+

被折叠的 条评论
为什么被折叠?



