UserRelations{UserID, FriendID, RelationStatus}
そして、IDが1、2、3などのユーザーがいます。ユーザー1はユーザー2にリクエストを送信しますユーザー3はユーザー1にリクエストを送信しますしたがって、データベースには次のものがあります。
1 | 2 | 1
と
3 | 1 | 1
今、クエリを書くのに少し混乱しています(おそらく設計が間違っています)。
ユーザーIDに基づいてすべての友達のリストを取得する必要があります。ただし、ユーザーが関係を要求した場合、または誰かが関係を要求した場合、ユーザーはそれに基づいて 2 つの列に入ることができます。
このクエリを使用すると、私から関係をリクエストしたすべてのユーザーを取得しますが、関係リクエストを送信したユーザーのリストも取得しますが、取得したプロファイル データは私のものであり、そのユーザーからのものではありません。
select ur.*, p.FirstName, p.LastName
from userRelations ur
join Profiles p on ur.UserId = p.UserId
where ur.FriendId = @UserId or
ur.UserId = @UserId