我希望列出所有$_SESSION['userid']
关注和未关注的人。
以下查询用于关注列表,它可以正常工作。
IN(较慢)
SELECT user.* FROM user
WHERE user.userid
IN (SELECT follow.followtoid FROM follow
WHERE follow.followerid = $_SESSION['userid'])
JOIN(快速)
SELECT p.*
FROM user p
JOIN follow f ON p.userid = f.followtoid
WHERE f.followerid = $_SESSION['userid']
对于那些仍然不了解cast的人,它可以工作,但似乎非常慢。
请告诉我如何使用JOIN代替NOT IN。
NOT IN(慢)
SELECT user.* FROM user
WHERE user.userid
NOT IN (SELECT follow.followtoid FROM follow
WHERE follow.followerid = $_SESSION['userid'])