1

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

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

为了给你更多的信息,这件事已经在 tumblr 或 twitter(带有转推)中完成:在用户个人资料中,我们有它的推文,但也有他转发的推文。

以下是数据库表:

表“帖子”:

  • ID
  • author_id
  • 标题
  • 内容
  • 创建

和“促销”表(人 X 提升职位 Y):

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

给定一个用户 ID,我想检索他写的帖子和他推广的帖子。问题是:什么是 SQL(特别是 MySQL)查询?

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

提前致谢。

4

2 回答 2

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
于 2012-05-29T15:48:50.337 回答
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。感谢所有参与者。

于 2012-05-29T20:19:29.900 回答