0
我已經編寫了一個MySQL查詢需要做什麼的例子,我試圖把這兩個查詢結合起來,但是我沒有成功這樣做。基本上,這會做的是選擇所有$ session已不是朋友的用戶。把這個亂七八糟的PHP變成一個單一的MySQL查詢
根據我的表格結構,我不知道我需要解釋多少,因爲您可以在下面看到我需要使用我的查詢來做些什麼,但基本上我的朋友表只有每行友誼有一行。 (友誼是唯一有效的,如果state
是1
和CASE
聲明是必要的獲得從友誼friends
ID,因爲我的表不只有一個行的友誼。
$getUsers = mysql_query("SELECT id FROM users WHERE id!=$session");
$getFriends = mysql_query("SELECT CASE WHEN userID=$session THEN userID2 ELSE userID END AS friendID
FROM friends
WHERE (userID=$session OR userID2=$session)
AND state='1'");
$usersArray = array();
$friendsArray = array();
while($usersC = mysql_fetch_array($getUsers))
{
$usersID = $usersC['id'];
array_push($usersArray, $usersID);
}
while($usersF = mysql_fetch_array($getFriends))
{
$friendID = $usersF['friendID'];
array_push($friendsArray, $friendID);
}
print_r(array_merge(array_diff($usersArray, $friendsArray), array_diff($friendsArray, $usersArray)));
謝謝,這看起來像它守ld工作,但它沒有返回任何東西。 (同樣,如果用戶在朋友中沒有任何行,它也應該工作) –
在這裏,希望這是有用的:http://sqlfiddle.com/#!2/3ad9a/1 –
@DylanCross:對不起,沒有意識到「朋友」表中存在衝突的「id」列 - 添加限定符應該可以解決它。上面更新了我的答案。 – eggyal