在这里,我发布了一个关于根据行中列的值进行 JOIN 的问题。您将需要创建一个添加好友功能,在其中将相互添加的 2 个用户的 ID 写入user_1_id
(my id) 和 user_2_id
(friend id)。当您想查看与谁成为朋友时,请选择取决于当前用户(正在浏览的用户)的 ID是否user_1_id
或有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
';
如果有人遇到问题,希望这会有所帮助