MySQL问题:n-m导致多个结果/行合并

MySQL问题:n-m导致多个结果/行合并,sql,mysql,aggregate-functions,Sql,Mysql,Aggregate Functions,我现在几乎用尽一切办法来解决下面的问题。到目前为止没有成功。但是必须有一个解决办法,因为我不认为这个案例太特殊。我想我只是个新手;-)我需要加入联合合并或其他什么;-)在MySQL中解决以下问题 案例:三个表“posts”、“tagmap”和“tags” tagmap表存储所有n-m关系,即帖子的id和标签的id tags表存储带有标记id的标记名称 posts表存储post_标题和post_id 我试图得到的结果是,所有相关的标签都合并到一列中。通过逗号分隔的列表或空格: 帖子id=>1,帖子

我现在几乎用尽一切办法来解决下面的问题。到目前为止没有成功。但是必须有一个解决办法,因为我不认为这个案例太特殊。我想我只是个新手;-)我需要加入联合合并或其他什么;-)在MySQL中解决以下问题

案例:三个表“posts”、“tagmap”和“tags”

tagmap表存储所有n-m关系,即帖子的id和标签的id
tags表存储带有标记id的标记名称
posts表存储post_标题和post_id

我试图得到的结果是,所有相关的标签都合并到一列中。通过逗号分隔的列表或空格:
帖子id=>1,帖子标题=>Charlie Chaplin。。。标签名称=>丙烯、粉笔、海报

但到目前为止,我唯一能得到的是这样多个结果:
帖子id=>1,帖子标题=>Charlie Chaplin。。。标签名称=>Acryl
帖子id=>1,帖子标题=>Charlie Chaplin。。。标签名称=>粉笔
帖子id=>1,帖子标题=>Charlie Chaplin。。。标签名称=>海报

有人知道如何做到这一点吗。。。我们将非常感谢任何帮助,并提前向所有能够帮助我的人发送thx;-)

使用:

  SELECT p.post_id,
         p.post_title,
         GROUP_CONCAT(t.tag_name ORDER BY t.tag_name SEPARATOR ', ')
    FROM POSTS p
    JOIN TAGMAP tm ON tm.post_id = p.post_id
    JOIN TAGS t ON t.tag_id = tm.tag_id
GROUP BY p.post_id, p.post_title
参考:


是的,这似乎是正确的,对不起,我正在看更多的联合结果(X-)非常感谢。。。我不敢相信我没有发现。。。我真的找了好几个小时。。。以递归方法或其他方式结束。。。希望事情就这么简单。只需添加一个组,并在几秒钟内像个魔术师一样工作。。。非常感谢。我只是把它改成了s.th,比如说组C。。。因为标签更容易阅读。。谢谢你@Boosh:对不起,是的-我很匆忙,没有为
GROUP\u CONCAT
列提供列别名
  SELECT p.post_id,
         p.post_title,
         GROUP_CONCAT(t.tag_name ORDER BY t.tag_name SEPARATOR ', ')
    FROM POSTS p
    JOIN TAGMAP tm ON tm.post_id = p.post_id
    JOIN TAGS t ON t.tag_id = tm.tag_id
GROUP BY p.post_id, p.post_title