Sql 获取书面用户帖子和他提升的帖子

Sql 获取书面用户帖子和他提升的帖子,sql,blogs,Sql,Blogs,目标有点难以解释,因此如果需要更多信息,请通知我 我正在创建一个博客,人们可以在这里发表文章,也可以推广其他用户的文章。用户帖子和升级帖子将显示在其个人资料页面中 为了给你更多的信息,这件事已经在tumblr或twitter(使用retweet)中完成了:在用户配置文件中,我们有它的推文,但也有他转发的推文 以下是数据库表: 表“员额”: 身份证 作者id 头衔 内容 创造 以及“晋升”表(人员X提升岗位Y): 身份证 推广人id(推广帖子的用户id Y:Mr X) 职位id(晋升职位:Y

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

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

为了给你更多的信息,这件事已经在tumblr或twitter(使用retweet)中完成了:在用户配置文件中,我们有它的推文,但也有他转发的推文

以下是数据库表:

表“员额”:

  • 身份证
  • 作者id
  • 头衔
  • 内容
  • 创造
以及“晋升”表(人员X提升岗位Y):

  • 身份证
  • 推广人id(推广帖子的用户id Y:Mr X)
  • 职位id(晋升职位:Y)
  • 创造
给定一个用户id,我想检索他写的帖子和他提升的帖子。问题是:什么是SQL(特别是MySQL)查询

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


提前感谢。

用户写的帖子很容易:

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

好的,我知道了。答案如下:

SELECT *
FROM Posts
LEFT JOIN Promotions ON Promotions.post_id = Posts.id
WHERE Posts.author_id = $userId
OR Promotions.promoter_id = $userId
所以,当混合左连接和OR条件时,魔术就发生了

希望这会有帮助


另外,感谢所有参与者。

您的意思是希望两个都在一个查询中?如果是这样,请提供一个示例输出,或者至少解释您希望从这两个表中获得哪些列(除了post ID和create date)。