首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql查询中显示"repost“之类的转发?

如何在mysql查询中显示"repost“之类的转发?
EN

Stack Overflow用户
提问于 2018-07-08 01:31:48
回答 1查看 174关注 0票数 0

我正在做一个项目,在这个项目中,我的帖子可以被重新发布到twitter的纯风格(转发)。这些帖子保存在一个表“post”中(id,userid,title,content,date),而repost保存在另一个表“repost”中(postid,userid,date)。我需要显示一个用户的帖子和转发按时间顺序和降序排列。

到目前为止,我能够做的是显示这两个表,但重新显示显示与创建日期的帖子,而不是与日期的重新发布。如果我从2年前重新发布了一个帖子,我希望现在就显示这个帖子(重新发布日期),而不是与2年前的帖子(帖子日期)一起排序。

这是我的疑问:

代码语言:javascript
复制
SELECT * FROM (SELECT p.* FROM post AS p WHERE userid='$id' UNION SELECT p.* FROM post AS p WHERE p.id IN (SELECT postid FROM repost WHERE userid='$id')) a ORDER BY date DESC
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-08 01:44:11

加入repostsposts,从每个表中选择想要的列。

代码语言:javascript
复制
SELECT *
       FROM (SELECT p1.postid,
                    p1.userid,
                    p1.title,
                    p1.content,
                    p1.date
                    FROM posts p1
                    WHERE p1.userid = ?
             UNION ALL
             SELECT r1.postid,
                    r1.userid,
                    p2.title,
                    p2.content,
                    r1.date
                    FROM reposts r1
                         INNER JOIN posts p2
                                    ON p2.postid = r1.postid
                    WHERE r1.userid = ?) x
       ORDER BY x.date DESC;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51228182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档