2014-03-28 33 views
0

我有一個表,THERAPY,其中包含數字字段鏈接到查閱表,REF_CODE文本引用值。我想構造一個查詢,它返回來自THERAPY的一組記錄以及來自REF_CODE的相關文本值。SQL查詢 - 鏈接查找其中查找字段可能爲NULL

我在查詢的字段是THERAPY.PROT。 PROT可以爲空。我想將外鍵(EVENT_ID)標識的所有記錄與REF_CODE中對應於PROT的值一起帶回。 ( REF_CODE包含許多查找類別,由CAT_ID標識 - 這就是CAT_ID = 1子句用於)。

SELECT THER_ID, CODE_NAME FROM THERAPY t, REF_CODE r 
WHERE (t.PROT = r.CODE or t.PROT is null) 
AND EVENT_ID = 1234 
AND r.CAT_ID = '1'; 

這樣做的問題是,如果THERAPY.PROT = null,則此查詢將不會帶回戰績可言,因爲在REF_CODE爲PROT = NULL沒有價值。我需要一個查詢,從EVER_ID = 1234的THERAPY中取回所有記錄,無論PROT是否爲空。指向REF_CODE的鏈接正在查詢我的查詢並排除PROT = null的記錄。但我仍然需要我的記錄。

所以,我怎樣才能構建一個查詢從THER帶回既所有記錄EVENT_ID = 1234 從REF_CODE相應的文本值PROT,無論PROT是否有值或爲空。這甚至有可能嗎?

非常感謝您提前看!很高興回答任何問題。

+0

您需要一個左連接,而不是內連接。 –

回答

0
SELECT THER_ID 
    ,ISNULL(CODE_NAME,'No Code Found') [CodeName] 
FROM THERAPY t 
LEFT JOIN REF_CODE r 
    ON t.PROT = r.CODE 
WHERE EVENT_ID = 1234 
    AND r.CAT_ID = '1'; 
+0

謝謝丹尼爾,那很好。實際上還有更多......不能在這裏發佈它似乎但會啓動一個新的問題。 – davemere