2017-06-05 92 views
0

主表想要連接兩次同一列的重複表兩次。 主表列是用整數插入的,需要與參考表一起加入才能返回給用戶顯示的字符。 它顯示沒有記錄的sql下面,爲什麼?左連接同一表兩次,但重複一列

主表BD_BRAND

Sports_BR Leather_BR 
    2   1 

Reffrence表BD_REF

ID NME   REF_TYPE 
1 NIKE  Sports_Brand 
2 ADIDAS Sports_Brand 
3 PUMA  Sports_Brand 
1 CLACKS Leather_Brand 
2 LOTTUSSE Leather_Brand 
3 CHEANEY Leather_Brand 





    SELECT B.NME AS Sports_BR, C.NME AS Leather_BR 
    FROM BD_BRAND A 
    LEFT JOIN BD_REF B on B.ID = A.Sports_BR 
    LEFT JOIN BD_REF C on C.ID = A.Leather_BR 

我想如下結果:

Sports_BR Leather_BR 
ADIDAS  CLACKS 
+0

您還沒有將「BD_BRAND」('A'別名)加入任何內容。這可能是問題嗎? –

+0

@BobJarvis我編輯了這個問題,我把錯誤的連接。 –

+0

@BobJarvis Leather_BR是4,我只是編輯它。 –

回答

1

我認爲你正在尋找:

SELECT B.NME AS Sports_BR, C.NME AS Leather_BR 
FROM BD_BRAND A 
LEFT JOIN BD_REF B on B.ID = A.Sports_BR and B.REF_TYPE = 'Sports_Brand' 
LEFT JOIN BD_REF C on C.ID = A.Leather_BR and B.REF_TYPE = 'Leather_Brand' 

由於不同的參考類型,您的ID存在多次,所以您需要指定由參考類型抓取哪個ID。

+0

@AndrewMadMan很高興我能幫忙:) – Aquillo