SQL将一个表的聚合结果作为查询中的列返回

时间:2010-12-14 12:27:36

标签: sql mysql

说我有以下设置

---Posts---
|id
|Title
-----------

---Comments---
|id
|postid
|comment
-----------

一些模拟数据

Posts
ID        Title
1         Hello World
2         Good Bye
3         Pepsi

Comments
ID      postid      comment
 1        1         comment 1
 2        2         comment 2
 3        2         comment 3

我想通过评论表中的ID返回帖子表格中的标题以及与之相关的所有评论。

类似的东西。

Title           Comment
Hello World     comment1
Good Bye        comment2
                comment3
Pepsi           null

这只能使用SQL吗?

4 个答案:

答案 0 :(得分:1)

Select Title, 
       (SELECT GROUP_CONCAT(Comment) FROM Comments
         WHERE
         Comments.postid=posts.posts) as comments
FROM posts

答案 1 :(得分:0)

 Select Title, Comment
 from Posts p LEFT Join Comments c on c.PostId = p.id
 Order by 1

但是会重复标题,即结果将是:

 Title           Comment
 ------------------------
 Hello World     comment1
 Good Bye        comment2
 Good Bye        comment3
 Pepsi           null

答案 2 :(得分:0)

选择posts.title,comments.comment 来自帖子JOIN评论关于posts.id = comments.postid

答案 3 :(得分:0)

可能你正在寻找这个: GROUP_CONCAT