mysql - 将多行数据合并到同一行和不同的列中:mysql
问题描述
假设您有以下基表:
student_id student_name course_name subscribed
--------------------------------------------------
001 vishnu english YES
001 vishnu arabic NO
001 vishnu chinese YES
我需要以下格式:
student_id student_name english arabic chinese
------------------------------------------------------
001 vishnu YES NO YES
我需要这个 mysql 查询。请帮助或指导我正确的方向。
解决方案
您可以尝试使用条件聚合
select student_id, student_name,
max(case when course_name='english' then subscribed end) as english,
max(case when course_name='arabic' then subscribed end) as arabic,
max(case when course_name='chinese' then subscribed end) as chinese
from tablename group by student_id, student_name