這裏我發佈了一個關於做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