我已经编写了一个 MySQL 查询需要做什么的示例,我曾尝试将这两个查询结合起来,但这样做没有任何成功。基本上,它的作用是选择 $session 已经不是朋友的所有用户。
就我的表结构而言,我不知道我需要解释多少,因为您可以使用下面的查询看到我需要做什么,但基本上我的朋友表对于每个友谊只有一行。(只有当state
is1
和CASE
语句对于从友谊中获取 ID 是必要的时,友谊才有效friends
,因为我的表只有一行用于友谊。
$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)));