MySQL中的Group By是否允许SELECT非聚合列的总结

修改5.7版本后的sql_mode=""

在SQL92以及更早的SQL标准中不允许查询除了GROUP BY之外的非聚合的列,例如如下查询即非法:

SELECT o.custid, c.name, MAX(o.payment)
FROM orders AS o, customers AS c
WHERE o.custid = c.custid
GROUP BY o.custid


因为c.name没有在group中,因此解决方案是删除c.name或者将c.name添加到group by中。但是在后期的SQL99标准中便允许查询非聚合的列了。

但是,group by是主键或者unique not null
————————————————
原文链接:https://blog.csdn.net/dax1n/article/details/86581472

posted @ 2019-09-20 11:06  星云惊蛰  阅读(1171)  评论(0)    收藏  举报