如果列B =列C,如何使用SQL的JOIN选择列A.

时间:2013-06-14 06:27:51

标签: php sql

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

让我稍微扩展一下。

如果friends.user_id friends.friend_id = $variable,那么select members.username where $variable = members.id,然后将所有数据放入一个数组($array = array()。没什么好看的)

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

感谢所有帮助!

3 个答案:

答案 0 :(得分: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

我注意到上面的内容可能会根据表格中的数据返回多个条目,所以这是另一个例子。

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 Fiddle DEMO

上面的例子将向您展示两个陈述之间的区别。

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

Introduction to JOINs – Basic of JOINs

答案 1 :(得分:0)

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

答案 2 :(得分:-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