也许这个标题并不是很清楚,但是我无法正确地为它命名。
我试图用下表选择一个人的所有朋友:
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是一个仰望自己朋友的人。希望这会有所帮助。
答案 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