我认为这是要处理按一个字段分组意味着其他字段也要分组的情况:
SELECT user.id, user.name, COUNT(post.*) AS posts
FROM user
LEFT OUTER JOIN post ON post.owner_id=user.id
GROUP BY user.id
在这种情况下,user.name对于每个user.id始终是唯一的,因此在GROUP BY
子句中不需要user.name是很方便的(尽管正如您所说,存在一定的问题范围)
为什么MySQL允许没有聚合功能的“分组”查询?
我认为这是要处理按一个字段分组意味着其他字段也要分组的情况:
SELECT user.id, user.name, COUNT(post.*) AS posts
FROM user
LEFT OUTER JOIN post ON post.owner_id=user.id
GROUP BY user.id
在这种情况下,user.name对于每个user.id始终是唯一的,因此在GROUP BY
子句中不需要user.name是很方便的(尽管正如您所说,存在一定的问题范围)