ここで、行の列の値に応じて JOIN を行うことについて質問を投稿しました。友達追加機能を作成する必要があります。この機能では、相互に追加している 2 人のユーザーの ID をuser_1_id
(私の ID) と user_2_id
(友達 ID) に書き込みます。あなたが誰と友達であるかを見たいときは、現在のユーザー(閲覧しているユーザー)のIDを持っているかどうuser_1_id
かに応じてDEPENDINGを選択しますuser_2_id
私はそれを理解したので、それを行う必要がある場合に使用したいクエリを以下に示します。
ここにクエリがあります
$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
';
誰かが問題を抱えている場合、これが役立つことを願っています