0

我想根据登录用户关注的人来选择用户的帖子。我需要做什么?如何在一个 SELECT 语句中使用两个不同的表?我什至不知道从哪里开始。

我有 3 张桌子:用户发布关注者

谢谢。

4

3 回答 3

0
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

由于您没有提供字段名称,因此我不得不编造字段名称。

于 2012-04-25T19:46:03.393 回答
0

我会按照 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)
于 2012-04-25T19:48:57.223 回答
0

使用 JOIN 从两个表中进行选择 http://dev.mysql.com/doc/refman/5.0/en/join.html

基本上你从两个表中选择并定义 JOIN 条件。

假设您有两个表:

  • 具有列的用户:user_id、user_name、online_state
  • 带有列的帖子:post_id、user_id(发布此帖子的用户)、标题、消息

从用户中选择 p.title、p.message u 加入帖子 p ON u.user_id = p.user_id WHERE u.online_state = 'online'

加入条件应该在 ON 之后,非加入条件应该在 WHERE 之后

于 2012-04-25T19:49:21.957 回答