gpt4 book ai didi

MySQL SUM left join 显示所有类别即使总和为0

转载 作者:行者123 更新时间:2023-11-29 05:04:29 24 4
gpt4 key购买 nike

我希望根据一组数据的得分总和来选择所有类别,即使该数据集不包含类别。但是,无论我尝试什么,它总是只显示具有实际数据的类别。

我创建了以下 SQLFiddle http://sqlfiddle.com/#!9/52a127/3

为了便于查看,我将在此处粘贴select 语句:

SELECT categories.id, IFNULL(SUM(raw_data.score), 0) as total
FROM categories
LEFT JOIN raw_data ON categories.id = raw_data.category_id
WHERE
(raw_data.quarter = '2018Q2' OR !raw_data.quarter) AND
raw_data.broker_id = 2
GROUP BY categories.id
ORDER BY total DESC

正如您从 fiddle 中看到的那样,它只显示 2 个类别,但我希望选择所有 6 个类别,并为没有结果的类别设置 0。

感谢任何帮助,谢谢!

最佳答案

您需要将条件从 WHERE 移动到 ON 子句:

SELECT categories.id, IFNULL(SUM(raw_data.score), 0) as total
FROM categories
LEFT JOIN raw_data ON categories.id = raw_data.category_id
AND (raw_data.quarter = '2018Q2' OR !raw_data.quarter)
AND raw_data.broker_id = 2
GROUP BY categories.id
ORDER BY total DESC;

SQLFiddle Demo

关于MySQL SUM left join 显示所有类别即使总和为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com