我习惯了Microsoft技术,包括SQL Server。今天我遇到了一个Q&A,其中引用了MySQL文档中的以下段落:标准SQL会拒绝您的查询,因为您无法在聚合查询中选择不属于GROUP BY子句的非聚合字段。MySQL扩展了GROUP BY的使用,因此选择列表可以引用GROUP BY子句中未命名的非聚合列。这意味着前面的查询在MySQL中是合法的。您可以通过避免不必要的列排序和分组来使用此功能来获得更好的性能。但是,当GROUP BY中未命名的每个非聚合列中的所有值对于每个组都相同时,这非常有用。服务器可以自由选择每个组中的任何值,因此除非它们相同,否则所选的值是 不确定的。如果它与SQL标准冲突,这个MySQL扩展的原因是什么?
添加回答
举报
0/150
提交
取消