SQL の問題:
テーブルの変更を受け付けています。FriendshipRequest tbl を追加する必要があるか、必要な情報を収集するのに IsActive で十分かどうか。または、ステータスを使用する必要がある場合: 保留中、承認済み、拒否など。
テーブル User とテーブル Friendship を取得しました。
友達がいるユーザー、または友達の招待が保留中のユーザーごとに、自分から、または自分から、2 行が挿入されます。
| UID | FID | IsActive |
| 1 | 2 | 1 |
| 2 | 1 | 1 |
^ ここでは、UID から FID へのフレンド招待状を 1 通受け取りました。招待は受け入れられ、彼らは友達です。
| UID | FID | IsActive |
| 1 | 2 | 1 |
| 2 | 1 | 0 |
^ ここでは、UID 1 > 2 からフレンドシップの保留中の招待状を 1 つ受け取りました。他のユーザー (UID:2) は招待を処理していません。承認/拒否別名 1/0
| UID | FID | IsActive |
| 1 | 2 | 0 |
| 2 | 1 | 0 |
^ ここで、却下されたリクエストを受け取りました。ID 2 のユーザーは招待を辞退しました。両方の列を False / 0 に設定します。
問題は、次のクエリを書きたいということです。保留中のすべてのリクエストを取得します。(IsActive 1 および IsActive = 0) 特定のユーザーのすべてのフレンドを取得します (アクティブなフレンド IsActive = 1)
私が使用するテーブルは次のとおりです。 ユーザー列: UserID フレンドシップ列: 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