获取用户发布的帖子和他宣传的帖子

时间:2012-05-29 15:43:24

标签: sql blogs

目标有点难以解释,所以如果您需要更多信息,请通知我。

我正在创建一个博客,人们可以发布文章,但也可以推广其他用户的帖子。用户发布和推广的帖子将显示在其个人资料页面中。

为了给你提供更多信息,这件事已经在tumblr或twitter(转推)中完成了:在用户档案中,我们有推文,但也有转推的推文。

以下是数据库表:

表“帖子”:

  • ID
  • AUTHOR_ID
  • 标题
  • 含量
  • 创建

“促销”表格(X人推广帖子Y):

  • ID
  • promoter_id(提升帖子Y的用户ID:X先生)
  • post_id(推广帖子:Y)
  • 创建

鉴于用户ID,我想检索他撰写的帖子和他宣传的帖子。问题是:什么是SQL(特别是MySQL)查询?

根据“已创建”字段对列表进行排序。

提前致谢。

2 个答案:

答案 0 :(得分:0)

用户撰写的帖子很简单:

select * 
from posts 
where author_id=@your_user_id

要获取用户提升的帖子,您可以执行以下操作:

select * 
from Promotions
where promoter_id =@your_user_id

当然,您可能需要有关用户推广的帖子的信息,因此您必须加入两个表:

select p.title
from posts P join Propotions pro on pro.postId=p.id
where pro.promoter_id =@your_user_id

答案 1 :(得分:0)

好的,我知道了。这是答案:

SELECT *
FROM Posts
LEFT JOIN Promotions ON Promotions.post_id = Posts.id
WHERE Posts.author_id = $userId
OR Promotions.promoter_id = $userId

因此,当混合LEFT JOIN和OR条件时会发生魔术。

希望它会有所帮助。

PS。感谢所有参与者。