将表A中的两个外键列关联到表B中的主键列

时间:2014-08-22 16:42:37

标签: .net sql-server sql-server-2008-r2

我有一个问题已经在我脖子上好几天了。我也在网上搜索无济于事......也许我一直在使用错误的搜索主题作为新手。

我有两个表及其各自的列:

Table A: A_Id (int, PK); user1 (int); user2 (int)
Table B: B_Id (int, PK); name (nvarchar)

User1& user2是B_Id的外键。我的任务是编写一个SQL select语句,它将显示下表:

Column Headings:      A_Id  User1   User2
Row records1:          1    Adam    Joe
Row records2:          2    John    Peter

我想将此应用于我正在尝试使用SQL Server 2008 R2创建的消息传递数据库。

这可能吗?或者我有什么更好的方法来实现这一目标

请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您需要与A加入B两次:

SELECT a_id, b1.name AS user1, b2.name AS user2
FROM   a
JOIN   b AS b1 ON a.user1 = b.b_id
JOIN   b AS b2 ON a.user2 = b.b_id

答案 1 :(得分:0)

以下查询将为您提供帮助

SElect A_ID ,B.name,c.name
FROM A LEFT OUTER JOIN B ON A.user1 = B.B_Id
   LEFT OUTER JOIN c ON A.user2 = C.B_Id