这个A和B 区别大吗,我感觉没什么差别
差别很大,因为在标准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