我有三個表格:日曆,僱員,任務。 員工通常在一週內完成任務,並且在週末期間不工作。我想完成的是加入表格,所以即使沒有員工完成任何任務,我也會在一年中每天看到。如何連接表以查看空值的日期?
下面是對我的作品的SQL:
SELECT c.date, t.task, e.name
FROM calendar c
LEFT JOIN tasks t ON (c.date = t.date)
INNER JOIN employees e ON (t.emp_id = e.id)
WHERE c.date >= "2016-01-01" AND c.date <= "2016-01-07";
一個結果是這樣的:
Date Task Name
...
2016-01-05 Driving John
2016-01-05 Cooking Rob
2016-01-06 Installing Jane
2016-01-07 null null
我的問題是,當我添加一個員工進入WHERE
條款(WHERE e.name in("John", "Rob", "Jane")
)最後一行(2016-01-07 null null
)消失。
我應該改變甚麼以保持結果中沒有員工和任務的日期?我需要這些日期來保留最終報告。
爲什麼這個奇數? ('... AND c.date <=「20016-01-07」') – jarlh
我不認爲這個查詢可以返回上述結果。 – Strawberry
感謝您的意見,我在日期修復了錯誤 – StefanK