我正在尝试选择由用户关注的帖子发布的帖子。
我的帖子表如下:
我的粉丝表如下:
posts表中的“creator”列是发布它的用户的ID。关注者表中的“跟随者”列是跟随“跟随”列的用户。
我正在使用此查询(无效)从创建者=用户所关注的所有用户的帖子中选择所有内容:
SELECT * FROM posts WHERE creator =(SELECT跟随FROM粉丝 WHERE follower = 用户ID )ORDER BY datetime DESC;
理论上:
SELECT * FROM posts WHERE creator=1 or 2 or 3 or 4...or 998 or 999
等等。
最好的方法是什么?
谢谢!
答案 0 :(得分:4)
尝试将查询更改为:
SELECT * FROM posts WHERE creator in (SELECT following FROM followers WHERE follower=the user's id) ORDER BY datetime DESC;
答案 1 :(得分:1)
在这种情况下使用联接可以提高查询的性能。我推荐以下内容:
SELECT * FROM posts p
INNER JOIN followers f
ON p.creator = f.following
WHERE f.follower = <user_id>
ORDER BY datetime DESC;
答案 2 :(得分:1)
试试吧
SELECT *
FROM posts p, followers f
WHERE
p.creator=f.following
and f.follower ='user_id'
ORDER BY p.datetime DESC;