这里我发布了一个关于做JOIN的问题,这取决于行中列的值。 你将需要你创建一个添加朋友功能,在这里你将两个正在互相添加的用户的ID写入user_1_id
(我的ID)和user_2_id
(朋友ID)。 当你想看看你是谁的朋友,选择取决于user_1_id
或user_2_id
是否具有近况用户的ID(谁是浏览一个)用mySQL选择“朋友”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 2012-04-10 18:17:01