我有兩個表部門和預算。即使它們不在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