目标有点难以解释,所以如果您需要更多信息,请通知我。
我正在创建一个博客,人们可以发布文章,但也可以推广其他用户的帖子。用户发布和推广的帖子将显示在其个人资料页面中。
为了给你提供更多信息,这件事已经在tumblr或twitter(转推)中完成了:在用户档案中,我们有推文,但也有转推的推文。
以下是数据库表:
表“帖子”:
“促销”表格(X人推广帖子Y):
鉴于用户ID,我想检索他撰写的帖子和他宣传的帖子。问题是:什么是SQL(特别是MySQL)查询?
根据“已创建”字段对列表进行排序。
提前致谢。
答案 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。感谢所有参与者。