簡體   English   中英

使用where子句條件在mysql中聯接兩個表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM