У меня есть таблица MySQL, как это:
User_Id course_name course_location course_id
1 course name 1 location 1 1
1 course name 2 location 2 2
1 course name 3 location 1 3
2 course name 2 location 1 2
2 course name 4 location 4 4
Как я могу получить данные в результате, как это:
User_id course 1 course2 course3 course4
1 yes-location1 yes-location2 yes-location1 NULL
2 NULL yes-location1 NULL yes-location4
Ответы:
Вы должны Pivot данных, используя
GROUP BY
сMAX
агрегатом и использоватьCASE
для фильтрации поUser_id
.Запрос:
Пример запроса в SQL Fiddle .
Вы можете заменить
course_location
на тоCONCAT('YES-', course_location)
, что ведущийYES
действительно необходим.Вывод:
источник
Создание таблицы:
Вставка:
Набор результатов:
Ожидаемый результат:
Решение:
источник