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

浙公网安备 33010602011771号