我想根据登录用户关注的人来选择用户的帖子。我需要做什么?如何在一个 SELECT 语句中使用两个不同的表?我什至不知道从哪里开始。
我有 3 张桌子:用户发布关注者
谢谢。
SELECT p.*
FROM followers f
JOIN posts p
ON p.author = f.following_id
WHERE f.user_id = $logged_in
ORDER BY
p.post_date DESC
由于您没有提供字段名称,因此我不得不编造字段名称。
我会按照 Quassonoi 在他的回答中建议的那样使用 Join 查询,如果您想尝试替代解决方案,您可以使用这样的子查询来完成
SELECT P.PostId,P.Title,P.Body
FROM Post P WHERE P.CreatedById
IN (
SELECT FollowerID from Followers WHERE USER_ID=3
)
替换3
为当前用户 ID。假设您的表结构是这样的。
邮政
PostId (int)
Title
Body
追随者
UserId (int)
FollowerId (int)
使用 JOIN 从两个表中进行选择 http://dev.mysql.com/doc/refman/5.0/en/join.html
基本上你从两个表中选择并定义 JOIN 条件。
假设您有两个表:
从用户中选择 p.title、p.message u 加入帖子 p ON u.user_id = p.user_id WHERE u.online_state = 'online'
加入条件应该在 ON 之后,非加入条件应该在 WHERE 之后