SQL问题:
我愿意更改我的表格。如果我应该添加一个 FriendshipRequest tbl 或者 IsActive 是否足以收集所需的信息。或者,如果我应该选择状态:待处理、已接受、已拒绝等。
得到表用户和表友谊。
对于每个有朋友的用户,或来自他自己或他自己的好友邀请待定,插入 2 行。
| UID | FID | IsActive |
| 1 | 2 | 1 |
| 2 | 1 | 1 |
^ 在这里,我们收到了一个从 UID 到 FID 的好友邀请。邀请已被接受,他们是朋友。
| UID | FID | IsActive |
| 1 | 2 | 1 |
| 2 | 1 | 0 |
^ 在这里,我们收到了一个待处理的邀请,来自 UID 1 > 2 的友谊邀请。另一个用户 (UID:2) 尚未处理邀请。接受/拒绝又名 1/0
| UID | FID | IsActive |
| 1 | 2 | 0 |
| 2 | 1 | 0 |
^ 在这里,我们收到了拒绝的请求。ID 为 2 的用户已拒绝邀请。将两列都设置为 False / 0。
问题是,我想为以下内容编写查询:获取所有待处理的请求。(IsActive 1 and IsActive = 0) 获取特定用户的所有好友 (Active Friends IsActive = 1)
我使用的表是:用户列:用户 ID 友谊列:用户 ID、朋友 ID、IsActive
我试过 UNION ALL,问题是我不知道如何处理结果。
SELECT
u.UserID, u.Username, f.IsActive
FROM Friendship f, [User] u
WHERE f.UserID = 6 AND f.FriendID = u.UserID AND f.IsActive = 1
UNION ALL
SELECT
u.UserID, u.UserName, f.IsActive
FROM Friendship f, [User] u
WHERE f.FriendID = 6 AND f.UserID = u.UserID AND f.IsActive = 1