我有这张表:
TABLE tema
+---------+-------------+
| tema_id | nombre |
+---------+-------------+
| 1 | Aprender |
| 4 | Justicia |
| 2 | Pensamiento |
| 3 | Vida |
+---------+-------------+
TABLE frase
+----+----------+----------------------------------------+
| id | autor_id | texto |
+----+----------+----------------------------------------+
| 1 | 2 | Pienso, luego existo |
| 2 | 1 | Aprender sin pensar es trabajo perdido |
+----+----------+----------------------------------------+
表tema_frase(与表frase和tema的关系)
+----------+---------+
| frase_id | tema_id |
+----------+---------+
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
+----------+---------+
所以当我执行此咨询时:
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 |
+----------------------------------------+-----------------------+
答案 0 :(得分:0)
您可能希望对结果进行分组并使用group_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_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