我想要使用SQL Server检索朋友的朋友。谁能帮我。
下面是我的朋友表结构,如果状态为2则表示朋友不是朋友
ID |用户ID | FriendID |用户名|朋友名称| RequestDate |状态| StatusUpdatedDate | IsBlocked
以下是UserMaster表格结构
UserId |用户名|电子邮件| DateOfBirth |语言
提前致谢
答案 0 :(得分:0)
此查询会为您提供朋友的朋友:
SELECT DISTINCT
f1.ID,
f2.FriendID AS FriendOfFriendID
FROM
(
SELECT
ID,
FriendID
FROM
friends
WHERE
UserID=<LoggedInUserId> AND
Status=2
) AS f1
INNER JOIN friends AS f2 ON
f2.ID=f1.FriendID
WHERE
f2.Status=2;
f1是一个derived table,可以为您提供ID以及他们的FriendID。然后通过使用f1的FriendID在f2中链接,再次将其链接到朋友(f2)以链接到FriendOfFriendID(f2.FriendID)。
查询执行DISTINCT selection过滤掉等于朋友的朋友(其中2个朋友可能会分享一些朋友)。