MySQL选择排除特定结果

时间:2012-05-30 11:02:30

标签: mysql select join

也许这个标题并不是很清楚,但是我无法正确地为它命名。

我试图用下表选择一个人的所有朋友:

Table friends
column name user1
column name user2

我的查询结果如下

SELECT users1.username,users2.username FROM friend_request
 JOIN users AS users1 ON friend_request.user1 = users1.id
  INNER JOIN users AS users2 ON friend_request.user2 = users2.id

然而,这显然会返回两个名字。

Foobar | Dummy

如何在一个结果中排除/获取有问题的朋友? 澄清user1.username是否不是我正在寻找的用户。用户名和签证。

Dummy

提前致谢。

编辑:

我不确定2列中的哪一列包含正确的用户。我正在寻找假人但是当我加入他们时,我得到了Foobar和Dummy,但我只是想知道Dummy。因为foobar是一个仰望自己朋友的人。希望这会有所帮助。

1 个答案:

答案 0 :(得分:0)

这应该得到你想要的......做一个工会。第一个查询应用where子句,其中您要在“user2”字段中开始的人,因此您加入“其他”人(user1字段)。然后联合应用反向...寻找第一个位置(user1)的主要人物,但在user2字段上进行连接(其他人)

SELECT 
      u.username
   FROM 
      friend_request fr
         JOIN users u 
            ON fr.user1 = u.id
   where
      fr.user2 = ThePrimaryPerson
UNION
SELECT 
      u.username
   FROM 
      friend_request fr
         JOIN users u 
            ON fr.user2 = u.id
   where
      fr.user1 = ThePrimaryPerson