要想查询工资最高的职工号和姓名

问题遇到的现象和发生背景

这个A和B 区别大吗,我感觉没什么差别

img

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

差别很大,因为在标准sql中的where子句中是不允许使用聚合函数(如max函数、min函数),如果需要在where子句中使用聚合函数
那就只能使用子查询
而A选项中,明显在where子句中使用了聚合函数max,不符合语法规范,执行sql会报错
而b选项,就是where子句中可以通过子查询来进行聚合函数的一个实例

A报错,B可以正常查询,where后边不能有聚合函数,聚合可以放having中,但是对于分组后的,再使用max也是查询分组后的每一行max,也会达不到效果,可以像B一样使用子查询,学习sql尽量去数据库实际操作查询一下,对比下结果看看,更有助于理解。

B
Mysql技能树里有相应的练习题,可以帮助你学习
https://edu.csdn.net/job/javabe_01/mysql-77042376726743bea5c97e82a67a2016