ここでは、行の列の値に応じてJOINを実行するかどうかについての質問を投稿しました。 user_1_id
(私のID)とuser_2_id
(友人ID)にお互いを追加している2人のユーザーのIDを書き込むAdd Friend機能を作成する必要があります。 あなたは、あなたと友達である人を参照してくださいsurrentユーザー(閲覧している1)のIDを持っているuser_1_id
かどうかuser_2_id
に応じて選択したいmySQLで "friends"を選択するJOIN CASE
私はダウンし、以下のことを考え出したあなたがしたいクエリですあなたがそれを行う必要がある場合に使用してください。ここで
は、クエリ
$sql_inp = 'SELECT DISTINCT
users.id, users.first_name, users.last_name,
CASE
WHEN friends.user_2_id="'.$_SESSION[USER][id].'" //equal to current user id
THEN (SELECT friends.user_1_id FROM friends WHERE friends.user_2_id="'.$_SESSION[USER][id].'") // if user_2_id is My id, then fetch the other row
ELSE friends.user_2_id // obviously the opposite
END
FROM users
LEFT JOIN friends ON users.id= // this case is completely the same as one above
CASE
WHEN friends.user_2_id="'.$_SESSION[USER][id].'" THEN (SELECT friends.user_1_id FROM friends WHERE friends.user_2_id="'.$_SESSION[USER][id].'")
ELSE friends.user_2_id
END
WHERE friends.user_1_id="'.$_SESSION[USER][id].'" OR friends.user_2_id="'.$_SESSION[USER][id].'" // fetch the row where the either one of the values is equal to My id
';
希望は、これは誰もがトラブル個人的に
申し訳ありませんが、あなたが何をしているのか分かりません。いくつかのサンプルデータといくつかの期待される結果と共にあなたのスキーマを投稿できますか? – liquorvicar