UserRelations{UserID, FriendID, RelationStatus}
还有 ID 为 1、2、3 等的用户。用户 1 向用户 2 发送请求 用户 3 向用户 1 发送请求 所以在数据库中我有:
1 | 2 | 1
和
3 | 1 | 1
现在我写查询有点困惑(也许设计是错误的)。
我需要根据用户 ID 获取所有朋友的列表。但是,如果用户请求关系或有人向他请求关系,则用户可以基于此在两列中。
如果我使用这个查询,我会得到所有向我请求关系的用户,但我会得到一个我已经发送了关系请求的用户列表,但我得到的个人资料数据是我的,而不是来自那个用户。
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