【发布时间】:2022-07-06 21:46:31
【问题描述】:
我有这个问题:
SELECT
bc.name,
SUM(amount) AS total
FROM
budget_categories bc
LEFT JOIN budget_items bi ON
bc.id = bi.budget_category_id
LEFT JOIN balance_lines bl ON
bl.budget_item_id = bi.id
WHERE
bc.id = 25 AND family_id = 97109 AND bl.balance_id = 264553
结果是:
NULL | NULL
但是当我将条件放在 LEFT JOIN 部分时,它可以工作:
SELECT
bc.name,
SUM(amount) AS total
FROM
budget_categories bc
LEFT JOIN budget_items bi ON
bc.id = bi.budget_category_id
LEFT JOIN balance_lines bl ON
bl.budget_item_id = bi.id AND family_id = 97109 AND bl.balance_id = 264553
WHERE
bc.id = 25
结果是:
Bannana | NULL
为什么会有差异?
【问题讨论】:
-
在重复问题中查看stackoverflow.com/a/34455091/5389997 答案
-
请在每个列引用中使用表别名 - 例如“金额”来自哪个表?