我想结交 friend 的 friend 的 friend 。我得到了结果,但我不确定我的查询是否正确。我正在使用嵌套选择。
我的问题是:
查询是否正确?
我如何使用 join 执行此查询?
这是我的 friend 圈
rowId userId friendId
----- ------ --------
1 1 4
2 1 2
3 2 10
4 3 6
.. .. ..
这是我交 friend 的方式:
SELECT DISTINCT(friendId) FROM `user_friend`
WHERE userId = $userID
这就是我做 friend 的 friend 的事
SELECT DISTINCT(friendId) FROM `user_friend`
WHERE userId IN (SELECT DISTINCT(friendId) FROM `user_friend`
WHERE userId = $userID)
这就是我为 friend 的 friend 做的事情
SELECT DISTINCT(friendId) FROM `user_friend`
WHERE userId IN (SELECT DISTINCT(friendId) FROM `user_friend`
WHERE userId IN (SELECT DISTINCT(friendId) FROM `user_friend`
WHERE userId = $userID))
使用连接可能更容易...
SELECT DISTINCT u3.friendId FROM user_friend u1
JOIN user_friend u2 ON u1.friendId = u2.userId
JOIN user_friend u3 ON u2.friendId = u3.userId
WHERE u1.userId = $userId
我是一名优秀的程序员,十分优秀!