Group_concat с добавленными столбцами
Я получил запрос, который работает просто отлично:
SELECT Course, Period, Room, Location, TeacherId, GROUP_CONCAT(StudentId) as Students
FROM cursosv2
GROUP BY Course, Period, Room, Location, TeacherID;
То, что я хочу (может быть, слишком простой), в результирующем запросе, чтобы иметь новый столбец, как NEW COLUMN A с объединенными значениями period+room+'final'. Но я продолжаю получать исключения. Не знаю настоящую причину.
Что я пытаюсь...
SELECT Course, Period, Room, Period+' '+Room+' Final' as test, Location, TeacherId, GROUP_CONCAT(StudentId) as Students
FROM cursosv2
GROUP BY Course, Period, Room, Location, TeacherID;
Благодарю.
3 ответа
Решение
Вы также должны использовать concat для конкатенации строк (не +) и добавлять в группу по
SELECT Course, Period, Room, concat( Period,' ',Room,' Final') as test, Location, TeacherId, GROUP_CONCAT(StudentId) as Students
FROM cursosv2
GROUP BY Course, Period, test, Room, Location, TeacherID;
Использование concat
соединять вместо +
, И добавить test
к group by
пункт:
SELECT Course, Period, Room, concat(Period,' ',Room,' Final') as test,
Location, TeacherId, GROUP_CONCAT(StudentId) as Students
FROM cursosv2
GROUP BY Course, Period, Room, test, Location, TeacherID;
Вы можете использовать CONCAT_WS для достижения этой цели.
('', Столбец1, столбец2) КАК имя_столбца
SELECT Course, Period, Room, concat_ws(' ', Room, Period) AS roomperiod, Location, TeacherId, GROUP_CONCAT(StudentId) as Students FROM cursosv2 GROUP BY Course, Period, Room, Location, TeacherID;
https://dev.mysql.com/doc/refman/5.5/en/string-functions.html