我有两个表部门和预算。即使它们不在BUDGET表中,我也想返回所有部门。我正在使用以下查询,但它似乎没有按预期工作。如果我使用WHERE子句,那么它不会返回即使我使用LEFT JOIN的任何记录左连接要么返回所有记录,要么没有无
SELECT dept_name FROM department
LEFT JOIN budget ON budget.dept_id = department.dept_id
AND budget.division = 5 AND budget.year = 2015
上述查询将返回所有部门的部门,而不仅仅是分裂5。我究竟做错了什么?
SQL FIDDLE ADDED
http://sqlfiddle.com/#!2/d4b07/12
再次编辑
看起来像我发现我想要的查询。这是我在上面发布的SQL小提琴中返回的一个结果'Legal',这是我想要的。
SELECT DISTINCT D.name, B.budget_year FROM department D
LEFT JOIN budget B ON D.ID = B.department_id
AND D.division_id = B.division_id
AND B.budget_year = 2015
WHERE D.division_id = 11
将条件放在on子句而不是where子句中。 – 2014-09-18 15:57:36
我已经在'on'子句中使用'budget'而不是'where',但它不起作用。 – 2014-09-18 16:11:55
您应该使用样本数据和期望的结果编辑问题。你的问题是不一致的。 – 2014-09-18 17:36:35