2017-06-05 49 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