【发布时间】:2019-03-11 15:19:42
【问题描述】:
给定一张玩家桌:
-------------------------
| id | name | email |
-------------------------
还有一张友谊表:
------------------------------------
| status | playerId | friendId |
------------------------------------
我正在使用以下查询来检索玩家信息和玩家之间的关系状态:
declare @id int = 1
select * from
(SELECT
p.id,
p.name,
p.email,
p.email_verified,
p.gender,
p.picture,
f1.playerId,
f1.friendId,
f1.status
FROM players p
LEFT OUTER JOIN friendships f1
ON
f1.playerId = p.id or f1.friendId = p.id) as pl
WHERE
pl.id <> @id
结果如下:
id name email playerId friendId status
2 Nina el@gmail.com 2 1 1
2 Nina el@gmail.com 2 49 1
49 Ciccio testpast@gmail.com 2 49 1
在这种情况下,用户 2 与用户 1 和另一个用户处于好友关系,我需要显示第一条记录,因为它与用户 id 参数有关系,但我还需要检索所有用户,好友关系和不是。 我该怎么办?
【问题讨论】:
标签: sql sql-server tsql