Mysql 如何显示带有逗号分隔且没有重复字段的sql查询字段
我有以下表格: 表temaMysql 如何显示带有逗号分隔且没有重复字段的sql查询字段,mysql,sql,Mysql,Sql,我有以下表格: 表tema +---------+-------------+ | tema_id | nombre | +---------+-------------+ | 1 | Aprender | | 4 | Justicia | | 2 | Pensamiento | | 3 | Vida | +---------+-------------+ 桌子磨损 +----+----------+-----
+---------+-------------+
| tema_id | nombre |
+---------+-------------+
| 1 | Aprender |
| 4 | Justicia |
| 2 | Pensamiento |
| 3 | Vida |
+---------+-------------+
桌子磨损
+----+----------+----------------------------------------+
| id | autor_id | texto |
+----+----------+----------------------------------------+
| 1 | 2 | Pienso, luego existo |
| 2 | 1 | Aprender sin pensar es trabajo perdido |
+----+----------+----------------------------------------+
表tema_frase(与表frase和tema的关系)
因此,当我进行咨询时:
SELECT frase.texto, tema.nombre
FROM tema_frase INNER JOIN
tema
ON tema_frase.tema_id = tema.tema_id INNER JOIN
frase
ON frase.id = tema_frase.frase_id
我明白了:
+----------------------------------------+-------------+
| texto | nombre |
+----------------------------------------+-------------+
| Pienso, luego existo | Pensamiento |
| Aprender sin pensar es trabajo perdido | Aprender |
| Aprender sin pensar es trabajo perdido | Pensamiento |
+----------------------------------------+-------------+
我的问题是,我如何以这种方式显示咨询
+----------------------------------------+-----------------------+
| texto | nombre |
+----------------------------------------+-----------------------+
| Pienso, luego existo | Pensamiento |
| Aprender sin pensar es trabajo perdido | Pensamiento, Aprender |
+----------------------------------------+-----------------------+
您需要对结果进行分组,并使用
group\u concat
连接名称:
SELECT frase.texto,group_concat(tema.nombre separator ", ")
FROM tema_frase
INNER JOIN tema
ON tema_frase.tema_id=tema.tema_id
INNER JOIN frase
ON frase.id=tema_frase.frase_id
GROUP BY frase.texto
您还可以使用group\u concat
按字母顺序排序,避免重复:
SELECT frase.texto,group_concat(DISTINCT tema.nombre separator ", " ORDER BY tema.nombre ASC)
FROM tema_frase
INNER JOIN tema
ON tema_frase.tema_id=tema.tema_id
INNER JOIN frase
ON frase.id=tema_frase.frase_id
GROUP BY frase.texto
SELECT frase.texto,group_concat(DISTINCT tema.nombre separator ", " ORDER BY tema.nombre ASC)
FROM tema_frase
INNER JOIN tema
ON tema_frase.tema_id=tema.tema_id
INNER JOIN frase
ON frase.id=tema_frase.frase_id
GROUP BY frase.texto