在这一点上阅读 MySQL文档 。
简而言之,MySQL出于性能考虑,允许从GROUP BY中 _ 删除 某些列,但是, _只有 在被省略的列都具有相同值
(在分组内)的情况下, 此方法才有效 ,否则, 查询返回的值的确是不确定的 ,例如在这篇文章中被其他人正确猜到了。确保添加ORDER
BY子句不会重新引入任何形式的确定性行为。
尽管不是问题的核心,但本示例说明如何使用*而不是对所需列进行显式枚举通常是一个坏主意。
摘自MySQL 5.0文档:
使用此功能时,每个组中的所有行应具有相同的值对于GROUP BY部分中省略的列。服务器是免费的从组中返回任何值,因此结果是不确定的,除非所有值都相同。



