MYSQL GROUP_CONCAT多个ID和名称(多个帖子行上有多个注释行)

时间:2013-05-01 14:41:57

标签: mysql group-concat

我有3个MYSQL表:

帖子

post_id     post_name      post_date

   1        Hello          2013-04-23
   2        Goodbye        2013-04-24

用户

user_id   user_name

   1      Danny
   2      Max  

评论

comment_id   user_id     post_id     comment_text      comment_date

   1           1             1       Really good       2013-04-23
   2           2             2       Really bad        2013-04-24
   3           2             2       Just joking       2013-04-24

我的目标是显示多个帖子行,其中包含多个评论(已与user_id,user_name& comment_text&以及分隔符分隔)。

这样的事情:

结果

Post id     Post name    Comments

   1        Hello        1,Danny,Really good
   1        Goodbye      2,Max,Really bad|2,Max,Just joking

我几个小时都在寻找这个例子。任何有关MYSQL查询的帮助都将非常感谢!感谢。

1 个答案:

答案 0 :(得分:2)

您可以在GROUP_CONCAT

中使用CONCAT

这样的事情: -

SELECT a.post_id, a.post_name, GROUP_CONCAT(CONCAT_WS(",", c.user_id, c.user_name, b.comment_text) SEPARATOR "|")
FROM Posts a
INNER JOIN Comments b ON a.post_id = b.post_id
INNER JOIN Users c ON b.user_id = c.user_id
GROUP BY a.post_id, a.post_name