首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否根据表B中的值从表A中选择值?

是否根据表B中的值从表A中选择值?
EN

Stack Overflow用户
提问于 2016-10-24 15:13:32
回答 3查看 74关注 0票数 3

我正在创建一个非常基本的帖子和回复系统,以便更好地理解MySQL和PHP。我有两个表:帖子和评论。

代码语言:javascript
复制
posts(post_id, post_user, timestamp, post_text)
comments(comment_id, post_id, timestamp, comment_text)

我想做的是按最近回复的帖子排序。所以我需要SELECT * from posts ordered by comments.timestamp desc,因为我想按最近的评论排序,而不是按原始帖子的时间戳排序。我找不到一个合适的查询来工作。

EN

回答 3

Stack Overflow用户

发布于 2016-10-24 15:25:58

你可能在找这个

代码语言:javascript
复制
SELECT  p.* 
FROM  posts p 
INNER JOIN comments c ON c.post_id= p.post_id
ORDER BY c.timestamp desc
票数 0
EN

Stack Overflow用户

发布于 2016-10-25 17:23:36

代码语言:javascript
复制
SELECT post_id, post_user, timestamp, post_text, 
       most_recent_comment
  FROM posts NATURAL JOIN
       ( SELECT post_id, 
                MAX( timestamp ) AS most_recent_comment
          FROM comments 
         GROUP
            BY post_id ) AS t
UNION
SELECT post_id, post_user, timestamp, post_text,
       NULL AS most_recent_comment
  FROM posts
 WHERE post_id NOT IN ( SELECT post_id FROM comments );
票数 0
EN

Stack Overflow用户

发布于 2016-10-24 16:06:25

代码语言:javascript
复制
SELECT  A.Post_Id FROM
(SELECT P.Post_Id,C.TimeStamp,ROW_NUMBER() OVER( PARTITION BY S.Post_Id ORDER BY C.TimeStamp DESC) Rnk  FROM POSTS p INNER JOIN  COMMENTS C
ON P.Post_Id=C.Post_Id) A
WHERE A.Rnk=1
ORDER BY A.TimeStamp DESC
This is SQL SERVER version.
So hope you can find Mysql version for it
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40212602

复制
相关文章

相似问题

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