我有一个问题已经在我脖子上好几天了。我也在网上搜索无济于事......也许我一直在使用错误的搜索主题作为新手。
我有两个表及其各自的列:
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创建的消息传递数据库。
这可能吗?或者我有什么更好的方法来实现这一目标
请帮帮我。提前谢谢。
答案 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