2

如果朋友表中的某些内容等于成员表中的其他内容,我正在尝试使用 SQL 的 JOIN 查询从我的成员表中选择某些内容。

让我稍微扩展一下。

If friends.user_id or friends.friend_id = $variable , then select members.username where $variable = members.id, 然后将所有数据放入一个数组中($array = array()。没什么特别的)。

我不知道从哪里开始(我是新手,如果你不知道的话)

感谢所有帮助!

4

3 回答 3

3

像这样的东西怎么样

SELECT  m.username
FROM    members m INNER JOIN
    friends f   ON  m.id IN (f.user_id,f.friend_id)
WHERE   m.id = $variable

我注意到上面可能会根据表中的数据返回超过 1 个条目,所以这里是另一个示例。

SELECT  m.username
FROM 
members m
WHERE m.id = 2    
AND     EXISTS  (
            SELECT  1 
            FROM    friends f 
            WHERE m.id IN (f.user_id,f.friend_id)
        )

SQL 小提琴演示

上面的示例将向您展示 2 个语句之间的区别。

这篇文章有一些很好的连接可视化表示,并且总是很方便。

JOIN 简介 – JOIN 基础

于 2013-06-14T06:33:31.780 回答
0
SELECT members.username
FROM   members, friends
WHERE  (friends.user_id = members.id
        OR friends.friend_id = members.id) AND
       members.id = $variable
于 2013-06-14T06:32:31.487 回答
-1

这应该有效:

SELECT m.username
FROM members m, friends f
WHERE m.id = f.user_id
  AND $variable IN (f.user_id, f.friend_id)

SQLFiddle

于 2013-06-14T06:35:22.123 回答