我有以下表格:
posts
post_id | text | posts_date
1 | blabla | 06-06-2013
2 | bababa | 09-06-2013
...
和
comments
comment_id | post_id | user_id | text | comments_date
1 | 1 | 55 | I like this... | 06-08-2013
2 | 1 | 66 | Yeah, me also! | 06-07-2013
3 | 2 | 55 | I like this... | 06-10-2013
4 | 2 | 66 | Yeah, me also! | 06-11-2013
...
我需要一个sql语句,它返回两个表中的所有列,然后首先按posts_date命令,然后按照此帖子的comments_date命令。
因此查询中的结果表应为
post_id | text | posts_date | comment_id | user_id | text | comments_date
1 | blabla | 06-06-2013 | 2 | 66 | Yeah, me also! | 06-07-2013
1 | blabla | 06-06-2013 | 1 | 55 | I like this... | 06-08-2013
2 | bababa | 09-06-2013 | 3 | 55 | I like this... | 06-10-2013
2 | bababa | 09-06-2013 | 4 | 66 | Yeah, me also! | 06-11-2013
我想到了像
这样的东西SELECT * FROM comments c, (SELECT * FROM posts ORDER BY posts_date ASC) p WHERE p.post_id = c.post_id ORDER BY comments_date ASC
但这似乎没有给出正确的结果。
答案 0 :(得分:2)
SELECT *
FROM COMMENTS C JOIN POSTS P ON C.post_id = P.post_id
ORDER BY P.posts_date,C.comments_date ASC
答案 1 :(得分:1)
Select * From Posts
inner join Comments on Posts.Post_id = Comments.Post_ID
order by posts.Post_date, comments.comment_date
只会为您提供有评论的帖子。
如果你想发帖,即使他们没有任何评论,那么
Select * From Posts
left join Comments on Posts.Post_id = Comments.Post_ID
order by posts.Post_date, comments.comment_date
学习加入队友,没有他们就离开家。