[英]MYSQL select mutual friends
My 'friends' table has the following columns: id, userID, userID2, state 我的“朋友”表具有以下列:id,userID,userID2,状态
userID and userID2 don't have a specific order of being put into the database. userID和userID2没有特定的放入数据库顺序。
I currently use this query to find a users friends: 我目前使用此查询来查找用户朋友:
$quer = mysql_query("
SELECT CASE WHEN userID=$id THEN userID2 ELSE userID END AS friendID
FROM friends WHERE userID=$id OR userID2=$id");
I have tried this however it doesn't work: 我已经尝试过了,但是没有用:
SELECT
CASE WHEN userID=$id OR userID=$session THEN userID2
ELSE userID END AS friendID
FROM friends WHERE (userID=$session OR userID2=$session)
AND (userID=$id OR userID2=$id) AND friendID!=$session
also it shouldn't return the row if friendID=$session (which i have added to my second query) 如果friendID = $ session(我已经添加到第二个查询中),它也不应该返回该行
EDIT : I want to return as friendID rows that $id and $session have in common. 编辑 :我想返回为$ id和$ session共同的FriendID行。 I'm not exactly sure why it isn't working.
我不确定为什么它不起作用。
After the explanations (and actually reading the "mutual" part): 经过解释(并实际阅读“相互”部分):
SELECT a.friendID
FROM
( SELECT CASE WHEN userID = $id
THEN userID2
ELSE userID
END AS friendID
FROM friends
WHERE userID = $id OR userID2 = $id
) a
JOIN
( SELECT CASE WHEN userID = $session
THEN userID2
ELSE userID
END AS friendID
FROM friends
WHERE userID = $session OR userID2 = $session
) b
ON b.friendID = a.friendID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.