我一直負責編寫查詢以顯示來自公司數據庫的報告分配。我需要查詢三個表格:REPORT,其中包含報告的頂級信息PROCEDURE,其中可以包含每個報告關於各個報告程序的多個結果,以及TECHNICIAN,每個程序可以包含多名技術人員,基於誰被分配給它。如何在連接表上找不到記錄時返回空值
我的問題是,如果沒有技術人員分配到一個過程,它沒有返回任何該過程,而理想情況下,我希望它返回一行技術員字段爲「空」。
當前的代碼我是這樣的:
SELECT
rep.RPT_ID
,tech.TECH_ID
,proc.PROC_ID
FROM REPORT rep
LEFT JOIN TECHNICIAN tech ON tech.RPT_ID = rep.RPT_ID
LEFT JOIN PROCEDURE proc ON proc.RPT_ID = rep.RPT_ID
WHERE rep.LAB_ID in ('test_lab')
AND proc.PROC_ID = tech.PROC_ID
我想這回這樣的事情,如果沒有高科技分配:
RPT_ID | TECH_ID | PROC_ID
12345 456 1
12345 NULL 2
67890 123 1
67890 345 1
,但目前我沒有得到這第二排。
'AND proc.PROC_ID = tech.PROC_ID'我猜這個問題是在這種情況下 – potashin
在加入'PROCEDURE'之前'TECHNICIAN' – fnightangel