2013-03-23 103 views
2

我有2個表,第一個是MASTER_TABLE與字段ID,STATUS_CODE,STATUS_SUBCODE,SUBJECT_CODE,SUBJECT_SUBCODE和所述第二表是CODE_TABLE其具有獨特的描述對於代碼和子代碼的每個組合。它具有以下字段CODESUBCODE說明執行多於1列Oracle查詢JOIN

如何編寫一個查詢檢索ID,STATUSSUBJECT,例如用於在MASTER_TABLE我STATUS_CODE的每個組合和STATUS_SUBCODE要獲得CODE_TABLE狀態值,同樣地,我必須做同樣的事情,對於承受

回答

2

你必須加入兩次CODE_TABLE - 一次爲每個類型的查詢,所以distingui SH從海誓山盟行,你必須別名至少一個(但通常人們會別名兩種,如下):

select 
    mt.ID, 
    ct1.DESCRIPTION as STATUS 
    ct2.DESCRIPTION as SUBJECT 
from MASTER_TABLE mt 
left join CODE_TABLE ct1 
    on ct1.CODE = mt.STATUS_CODE and ct1.SUBCODE = mt.STATUS_SUBCODE 
left join CODE_TABLE ct2 
    on ct2.CODE = mt.SUBJECT_CODE and ct2.SUBCODE = mt.SUBJECT_SUBCODE 

我所做的加入left連接的情況下,數據是從CODE_TABLE丟失,在這種情況下,該查詢將爲相應的描述產生一個null