1
我有一个分类表和产品表。产品有category_id,也有maker_id。MySQL分组子查询优化
我试图返回一个类别名称的表,以及该类别是否包含属于给定$ maker_id(如在PHP代码中定义的)的任何产品的二进制文件。
我目前的方法计算每个类别有多少匹配产品,但我假设有一个更快的方法,因为我只需要一个是/否。当前代码:
SELECT
c.name,
SUM(CASE WHEN p.maker_id = '{$maker_id}' THEN 1 ELSE 0 END) AS already_used
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id
我在阅读使用EXISTS,但我发现所有的例子都在WHERE子句中使用它。谢谢!
您需要更多的产品除了在从'maker_id'任何其他信息? – Naltharial
是的。我正在做另一个类似的计数,其中有多少处于各种“状态”。基本上如下: SUM(作为例子,当p.status ='ready'THEN 1 ELSE 0 END)为ready_count。如果有一种方法可以将这些类型的分组查询组合起来,那就太棒了。 – Charles