繁体   English   中英

MYSQL选择共同的朋友

[英]MYSQL select mutual friends

我的“朋友”表具有以下列:id,userID,userID2,状态

userID和userID2没有特定的放入数据库顺序。

我目前使用此查询来查找用户朋友:

$quer = mysql_query("
SELECT CASE WHEN userID=$id THEN userID2 ELSE userID END AS friendID 
FROM friends WHERE userID=$id OR userID2=$id");

我已经尝试过了,但是没有用:

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

如果friendID = $ session(我已经添加到第二个查询中),它也不应该返回该行

编辑 :我想返回为$ id和$ session共同的FriendID行。 我不确定为什么它不起作用。

经过解释(并实际阅读“相互”部分):

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM