【发布时间】:2017-06-19 19:38:43
【问题描述】:
我正在尝试运行如下查询:
SELECT cc.slug AS cc_slug
, cp.slug AS cp_slug
, COUNT(cp.id)
FROM catalog_categories AS cc
LEFT
JOIN catalog_products cp
ON cc.id = cp.category_id
GROUP
BY cc.id
, cp.id
并期望获得每个类别的关联产品数量,但我只检索“0”和“1”而不是正确的计数。它是由第二组group by ... cp.id 引起的,但由于启用了 ONLY_FULL_GROUP_BY,因此无法将其删除。因此,例如,如果我运行类似查询(不按联接表分组):
SELECT COUNT(cp.id)
FROM catalog_categories AS cc
LEFT
JOIN catalog_products cp
ON cc.id = cp.category_id
GROUP
BY cc.id
我得到了正确的结果,但问题是我需要 SELECT 中的所有这些字段和别名。
有什么办法可以解决这个问题吗?
【问题讨论】:
标签: mysql sql select group-by left-join