多个fk列的sql语句

时间:2017-04-21 17:39:29

标签: sql

我有两张桌子。表A包含3个引用表B的id的列。如何编写一个select语句,显示表A引用的表B的所有名称。

看看它会很好地解释自己:

表a就像这样

----------------------
aid | bfk1 | bfk2 | bfk3
-----------------------
1   | 1    | 3    | 4
2   | 1    | 4    | 4
3   | 1    | 4    | 4

表b包含名称

----------------------
bid | name
-----------------------
1   | test1  
2   | test2    
3   | test3
4   | test4

如何显示表a中包含表b名称的所有数据。我需要什么sql语句来实现这一点? 提前谢谢

1 个答案:

答案 0 :(得分:0)

您需要使用不同的别名

连接同一个表3次
select a.aid,
       b1.name as b_name_1,
       b2.name as b_name_2,
       b3.name as b_name_3
from tableA a
left join tableB b1 on a.bfk1 = b1.bid
left join tableB b2 on a.bfk2 = b2.bid
left join tableB b3 on a.bfk3 = b3.bid