[英]Joining two tables in mysql with where clause condition
我有兩個表,比如“雇員”和“加入日期”。現在我想根據雇員ID來加入兩個表,但是我想顯示雇員的完整列表,而不管是否注冊了加入日期。.這兩個桌子
Employee
John
Paul
George
Ringo
DOJ
21/05/1998
23/02/2006
約翰,保羅,喬治,林戈的EmpIds分別為1,2,3,4
我需要將兩個表都連接起來,George和Ringo的值可以為null,但是我主要關心的是我應該能夠過濾DOJ。 請看下面。
SELECT e.empName, d.DOJ, e.empId
FROM employee AS e
LEFT JOIN doj AS d ON e.empId = d.empId
WHERE d.doj BETWEEN STR_TO_DATE('27/04/2000', '%d/%m/%Y')
AND STR_TO_DATE('27/04/2014', '%d/%m/%Y'))
現在,當我運行此查詢時,我得到了按日期過濾的所有記錄,但我需要所有的雇員名稱,而不僅僅是用where子句過濾的雇員名稱(doj為null,我可以替換為“不可用”)。 我希望在mysql中有完整的外部連接選項。
試試這個未經測試的查詢:
SELECT e.empName, d.DOJ, e.empId
FROM employee AS e
left JOIN doj AS d ON e.empId = d.empId
and d.doj between STR_TO_DATE('27/04/2000', '%d/%m/%Y')and STR_TO_DATE('27/04/2014', '%d/%m/%Y')and STR_TO_DATE('27/04/2014', '%d/%m/%Y'))
我猜您除了where條件之外,您在查詢中所做的一切都正確。 根據您的條件,結果將在2000年4月27日至2014年4月27日之間,因此,如果日期值為“ NULL”,則不會顯示。
在沒有該日期條件的情況下嘗試相同的查詢,您可能會得到結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.