我有一张代表友谊的表格,如下所示
+--------+--------+
| user_1 | user_2 |
+--------+--------+
| 1 | 5 |
| 2 | 67 |
| 3 | 23 |
| ... | ... |
+--------+--------+
我想创建一个程序来检索 friend 的 friend (但直接 friend 不能包含在结果中)。我通过执行以下操作实现了这一点: (假设我们想要用户 5 的 friend 的 friend )
SELECT user_2
FROM friends
WHERE user_1 IN (
SELECT user_2
FROM friends
WHERE user_1=5
) AND user_2 NOT IN (
SELECT user_2
FROM friends
WHERE user_1=5
)
但是重复让我很烦。我怎样才能在没有冗余的情况下做同样的事情?
我知道答案很简单,但我无法确定。我尝试使用别名但没有成功。谢谢!
最佳答案
类似的东西对我有用:
SELECT user_2
FROM friends,
(SELECT user_2 FROM friends WHERE user_1=5) USER2Alias
WHERE user_1 IN (USER2Alias.user_2) AND user_2 NOT IN (USER2Alias.user_2)
关于mysql - 在 MySQL 的同一个查询中使用同一个子查询 2 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997987/