2017-06-05 16 views
0

メインテーブルは、同じ列で2回、reffrenceテーブルと結合します。 メインテーブルの列は整数で挿入されているため、文字列をユーザーに表示するために、表と結合する必要があります。 以下のSQLではレコードが表示されません。なぜですか?同じテーブルを2回左に結合しますが、1つの列を繰り返します。

メインテーブル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

関連する問題