У меня есть запрос следующим образом:
SELECT *
FROM tb_circulares LEFT JOIN tb_colegios ON tb_circulares.colegio_circular = tb_colegios.id_colegio
LEFT JOIN tb_circulares_clase ON tb_circulares.codigo_circular = tb_circulares_clase.circular
LEFT JOIN tb_clases ON tb_circulares_clase.clase = tb_clases.id_clase
WHERE colegio_circular = 17
Выходные данные запроса показывают три строки.
Один из столбцов строки является значением поля tb_circular_clase.nombre_clase.
Я хотел бы получить строку, содержащую три результирующих значения для tb_circular_clase.nombre_clase.
Например:
row1-> nombre_clase = "1º primaria"
row2-> nombre_clase = "3ª secundaria"
row3-> nombre_clase = "4º primaria"
Можно ли получить результирующее поле запроса с окончательным значением?
`resultado = "1º primaria - 3ª secundaria - 4º primaria"
Спасибо
Я предполагаю, что предложенная ссылка ИМЕННО то, что вам нужно. Принятый ответ был написан с учетом вас.
Похоже, вам нужен group_concat()
, который представляет собой функцию агрегации, объединяющую все значения группы.
SELECT group_concat(nombre SEPARATOR ' - ') resultado
FROM tb_circulares
LEFT JOIN tb_colegios
ON tb_circulares.colegio_circular = tb_colegios.id_colegio
LEFT JOIN tb_circulares_clase
ON tb_circulares.codigo_circular = tb_circulares_clase.circular
LEFT JOIN tb_clases
ON tb_circulares_clase.clase = tb_clases.id_clase
WHERE colegio_circular = 17;
@Strawberry, я ценю ваше предложение, но я не эксперт по SQL. Я использую MySQL только в базовом подходе. Я предполагаю, что предлагаемая ссылка выходит далеко за рамки моих потребностей.