【发布时间】:2013-04-17 13:03:25
【问题描述】:
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 和 IsActive = 0) 获取特定用户的所有好友(Active Friends IsActive = 1)
我使用的表格是: 用户列:用户 ID 友谊列:UserID、FriendID、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
【问题讨论】:
-
2 columns is inserted.你的意思是在每个好友请求的表中插入两行吗? -
是的,对不起。当然是它的行。