0

我有 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 查询的帮助将不胜感激!谢谢。

4

1 回答 1

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
于 2013-05-01T14:53:27.220 回答