【发布时间】:2010-05-26 13:44:13
【问题描述】:
在一个语句中,我试图通过加入另一个表来对一个表的行进行分组。我只想获取分组结果不为空的分组行。
例如。项目和类别
SELECT Category.id
FROM Item, Category
WHERE Category.id = Item.categoryId
GROUP BY Category.id
HAVING COUNT(Item.id) > 0
上面的查询给出了我想要的结果,但这很慢,因为它必须计算按 Category.id 分组的所有行。
有什么更有效的方法?
我试图按限制进行分组,以便每组只检索一行。但是我的尝试失败了。知道我该怎么做吗?
谢谢
【问题讨论】:
-
我是否理解您要返回所有至少包含一项的类别?
-
是的,但效率很高。这就是问题所在。
标签: mysql performance limit group-by