何時間も試みてきました - 残念ながら、私はこの 3 つのテーブルの結合で立ち往生しています。
問題は、ユーザーの友人の写真をすべて取得できることです。しかし、友達の写真とユーザーの写真が必要です。ただし、これの構文はわかりません。
これが私のテーブル構造です:
active_users: id, username, name, etc...
friends: relationship_id (PK), friend1_ID (FK), friend2_ID (FK), status
pictures: picture_id (PK), user_id (FK), name, date, etc.
したがって、ユーザーの友人の写真を取得するために現在必要なステートメントは次のとおりです。
SELECT p.*, a.username
FROM friends f
JOIN active_users a ON (f.friend_1ID='$userID' AND f.friend_2ID=a.id AND status=1)
JOIN pictures p ON (p.user_id=f.friend_2ID)
ユーザーの写真を含めるようにこれを変更するにはどうすればよいですか? UNION を使ってそれを行うことはできますが、ユーザー入力による方法がある場合、これはコストがかかり、SQL 攻撃を受けやすいと思います (または言われたことがあります)。
ユーザーを自分自身に友達として追加することも検討しましたが、これは受け入れられますか?