我正在努力查询以加入相应的替换ID。 我有两个表USERS和CONNECTIONS。
用户:
user_id first_name
--------------------
3 Jim
4 Pam
5 Michael
连接:
user_id friend_id
--------------------
3 4
4 3
4 5
5 4
在“连接”中,两列均包含“用户”中的user_id,以表示人员之间的连接。 我需要如下结果:
user friend
----------------
Jim Pam
Pam Jim
Pam Michael
Michael Pam
答案 0 :(得分:0)
将Connections
表与Users
表联接在一起可以得到预期的结果。
使用U1.user_id = C.user_id
获取user
,然后使用U2.user_id = C.friend_id
获取friend
值。
SELECT U1.first_name AS user, U2.first_name AS friend
FROM Connections C
JOIN Users U1 ON U1.user_id = C.user_id
JOIN Users U2 ON U2.user_id = C.friend_id
输出:
user friend
--------------------
Jim Pam
Pam Jim
Pam Michael
Michael Pam
答案 1 :(得分:0)
[这是用于SQL Server。不知道OP正在使用postgres。]
这应该可以解决问题。只需两次加入用户表(一次用于该用户,另一次用于朋友)
SELECT
[User].[first_name] AS [UserName]
,[Friend].[first_name] AS [FriendName]
FROM [User]
INNER JOIN [Connections] ON [Connections].[user_id] = [User].[user_id]
INNER JOIN [User] AS [Friend] ON [Friend].[user_id] = [Connections].[friend_id]