Как сгруппировать столбцы с таким количеством связей? - PullRequest
0 голосов
/ 29 ноября 2018

Прошло много времени с тех пор, как я писал в последний раз (у меня сегодня сильная головная боль), поэтому, если этот вопрос разобьется, я пойму.

Я объединяю несколько таблиц для получения данных, которые выглядят следующим образом (https://meta.stackexchange.com/questions/73566/is-there-markdown-to-create-tables на самом деле нет табличного представления в StackOverflow?)

| course_name    | student_name  |  credit_type  | 
| course_1       | student_1     |  credit_2     |
| course_1       | student_1     |  credit_3     |
| course_1       | student_1     |  credit_4     |
| course_1       | student_2     |  credit_1     |
| course_1       | student_2     |  credit_2     |
| course_1       | student_2     |  credit_3     |
| course_1       | student_2     |  credit_4     |
| course_1       | student_3     |  credit_1     |
| course_1       | student_3     |  credit_2     |
| course_1       | student_3     |  credit_3     |
| course_1       | student_3     |  credit_4     |
| course_2       | student_1     |  credit_1     |
| course_2       | student_1     |  credit_2     |
| course_2       | student_1     |  credit_3     |
| course_2       | student_1     |  credit_4     |
| course_2       | student_2     |  credit_1     |
| course_2       | student_2     |  credit_2     |
| course_2       | student_2     |  credit_3     |
| course_2       | student_2     |  credit_4     |
| course_2       | student_3     |  credit_1     |
| course_2       | student_3     |  credit_2     |
| course_2       | student_3     |  credit_3     |
...........

Я хочу данныеэто группирует все кредиты студентов на одного студента, так что это выглядит так:

| course_name  |    student_name  | credit_type                              |
| course_1     |    student_1     | credit_2, credit_3, credit_4             |
| course_1     |    student_2     | credit_1, credit_2, credit_3, credit_4   |
| course_1     |    student_3     | credit_1, credit_3, credit_4             |
| course_2     |    student_1     | credit_1, credit_2, credit_4             |
| course_2     |    student_2     | credit_1, credit_2, credit_4             |
| course_2     |    student_3     | credit_1, credit_2, credit_4             |
| ............ |    ..............| ..., ..., ..., ..., ..., ..., ..., ..., .|

Я знаю о GROUP_CONCAT, я просто не уверен, как реализовать это в этом случае.Имейте в виду, что это устаревшая система, которая скоро будет закрыта.

Какой самый простой способ сделать это?

Если вы поможете мне, я был бы очень признателен.

1 Ответ

0 голосов
/ 29 ноября 2018

Вам просто нужно GROUP BY на двух столбцах (course_name, student_name) здесь:

SELECT
  course_name, 
  student_name, 
  GROUP_CONCAT(credit_type)
FROM your_table
GROUP BY course_name, student_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...