Как объединить несколько значений в один столбец результата - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть следующие таблицы:

учитель

+------------+-------------+
|ID          |Name         |
+------------+-------------+
|1           |teacher1     |
|2           |teacher2     |
|3           |teacher3     |
+------------+-------------+

учит

+------------+-------------+
|teacher_ID  |specialty    |
+------------+-------------+
|1           |specialty1   |
|1           |specialty2   |
|2           |specialty1   |
|3           |specialty5   |
|3           |specialty8   |
|3           |specialty2   |
+------------+-------------+

кто япытаюсь сделать следующее: я хочу запрос, который может дать мне следующее:

+--------------+------------------------------------------+
|teacher_name  |specialties                               |
+--------------+------------------------------------------+
|teacher1      |specialty1, specialty2                    |
|teacher2      |specialty1                                |
|teacher3      |specialty5, specialty8, specialty2        |
+--------------+------------------------------------------+

, поэтому я хочу, чтобы специальности каждого учителя были объединены, как указано выше, в значении столбца.Это вообще возможно сделать используя MySQL?Если да, пожалуйста, дайте мне знать.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Мы можем попробовать использовать GROUP_CONCAT здесь:

SELECT
    t1.ID,
    t1.Name,
    GROUP_CONCAT(t2.specialty) AS specialties
FROM teacher t1
LEFT JOIN teaches t2
    ON t1.ID = t2.teacher_ID
GROUP BY
    t1.ID,
    t1.Name;
0 голосов
/ 12 апреля 2019

использование group_concat()

select Name as teacher_name,group_concat(specialty) as specialties
from teacher a inner join teaches b
on a.id=b.teacher_id
group by b.teacher_id,name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...