MySql:从一个表透视

MySql:从一个表透视,mysql,pivot,Mysql,Pivot,我有这个选择 选择concatdate_FormatStartEsson,'%H:%i','-',date_formatendLesson,'%H:%i'作为“日历”, 教室=第三个a时的案例 然后 选择Concat姓氏,'\r\n',关于,'\r\n',tcode,'\r\n',book 以“第三个A”结尾, 教室=第三课堂时的案例 然后 选择Concat姓氏,'\r\n',关于,'\r\n',tcode,'\r\n',book 以“第三方”结尾 从测试日历 其中DateStartesson=

我有这个选择

选择concatdate_FormatStartEsson,'%H:%i','-',date_formatendLesson,'%H:%i'作为“日历”, 教室=第三个a时的案例 然后 选择Concat姓氏,'\r\n',关于,'\r\n',tcode,'\r\n',book 以“第三个A”结尾, 教室=第三课堂时的案例 然后 选择Concat姓氏,'\r\n',关于,'\r\n',tcode,'\r\n',book 以“第三方”结尾 从测试日历 其中DateStartesson='2017-02-24'

产生这种输出的:

CALENDAR---------------->THIRD_A--------------->THIRD_B
08:00 - 09:00---------->PIPPO(bla)------------>NULL
09:00 - 10:00---------->PLUTO(bla)------------>NULL
09:00 - 10:00---------->NULL------------------->PAPERINO
我需要将数据显示为:

CALENDAR---------------->THIRD_A--------------->THIRD_B
08:00 - 09:00---------->PIPPO(bla)------------>NULL
09:00 - 10:00---------->PLUTO(bla)------------>PAPERINO
表格结构为:

id (int, pk)
classRoom_id (int)
lesson_id (int)
startLesson datetime
endLesson datetime
about varchar
tcode varchar
book varchar
surname
有什么提示吗

提前谢谢你

您似乎需要一个小组:

注:

如果希望每组一行,请使用group by。 没有必要使用不带from子句的subselect。 如果存在多个匹配项,则使用组_concat。对于你问题中的数据,max可能没问题。 通常不建议在列中嵌入新行字符。
很好,谢谢。关于在列中嵌入新行,为什么不鼓励?再次感谢。@user1291822。SQL结果集由列中的行组成。一行跨越多行可能会令人困惑。当然,您可能有很好的理由加入换行符。我只是说,一般来说,行和行通常是同义词。
SELECT concat(date_format(startLesson,  '%H:%i'), ' - ',  
              date_format(endLesson, '%H:%i')) AS CALENDAR,
       group_concat(case when classroom = 'third_a' 
                         then concat(surname, '\r\n', about, '\r\n', tcode, '\r\n', book))
                    end) as THIRD_A,
       group_concat(case when classroom = 'THIRD_B'
                         then concat(surname, '\r\n', about, '\r\n', tcode, '\r\n', book))
                    end) as THIRD_B
FROM test_calendar
WHERE date(startLesson) = '2017-02-24'
GROUP BY Calendar;