MySQL问题:n-m导致多个结果/行合并
我现在几乎用尽一切办法来解决下面的问题。到目前为止没有成功。但是必须有一个解决办法,因为我不认为这个案例太特殊。我想我只是个新手;-)我需要加入联合合并或其他什么;-)在MySQL中解决以下问题 案例:三个表“posts”、“tagmap”和“tags” tagmap表存储所有n-m关系,即帖子的id和标签的idMySQL问题: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,帖子
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
参考:
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