Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何显示带有逗号分隔且没有重复字段的sql查询字段_Mysql_Sql - Fatal编程技术网

Mysql 如何显示带有逗号分隔且没有重复字段的sql查询字段

Mysql 如何显示带有逗号分隔且没有重复字段的sql查询字段,mysql,sql,Mysql,Sql,我有以下表格: 表tema +---------+-------------+ | tema_id | nombre | +---------+-------------+ | 1 | Aprender | | 4 | Justicia | | 2 | Pensamiento | | 3 | Vida | +---------+-------------+ 桌子磨损 +----+----------+-----

我有以下表格:

表tema

+---------+-------------+
| 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