我有两张桌子的DB: rmonth 和替代方案
rmonth是一个完整月份的每个备选项的聚合数据表 - 如果它们有任何 - 否则rmonth表中不存在该行。
现在我想加入他们,这是我的代码:
SELECT
COALESCE(rmAntal, 0) AS sumMonth, aID, aText, rmUnitID
FROM
alternatives
LEFT JOIN
rmonth ON aID = rmAltID
WHERE aToQuestID = 4418
AND rmMonth = 3
AND rmYear = 2018
AND rmUnitID IN (10603,10960,10496)
GROUP BY aID, rmUnitID
ORDER BY aID ASC
但它没有给我rmonth中不存在的行。 所以这个场景给了我想要的结果 - 除了它无法处理rmonth中特定unitID不存在替代的位置。 我希望它们在sumMonth中仅列出0。
不幸的是,我的MySQL知识有限。
感谢。
答案 0 :(得分:0)
您可以添加OR
运算符,例如
...
WHERE aToQuestID = 4418 AND rmMonth IS NULL OR (
AND rmMonth = 3
AND rmYear = 2018
AND rmUnitID IN (10603,10960,10496)
)
...
这样,您就可以获得所有alternatives
数据,即使它在rmonth
中的计数器部分为空也是如此。