合并行并将它们的值放在 mysql 中的单独列中

Combine rows and put their values in seperate column in mysql

我想合并两个或多个具有相同名称的行,并将它们的值放在两个单独的列中。使用以下图像可以更清楚地了解问题:

我的预期输出是:

您可以在此处查看 fiddle:fiddle

到目前为止,我已经尝试使用 MySQL 代码:

Select subjects, mark_score, activity 
   FROM(
      SELECT subjects,  mark_score, 
      (SELECT regd, subjects, mark_score 
       FROM exo_i WHERE entry='7' and regd='19') as activity 
       FROM exo_i WHERE regd='19' GROUP BY subjects)t

如评论中所述,要求是 "FA1" 条目显示 "marks","SA1" activity 条目显示 "activity"。假设不能有多行具有这些值(即 regdsubjectsaactivity 的组合是唯一的),您可以为这些活动中的每一个创建一个子查询,并且加入他们:

SELECT a.regd, a.subjects, a.marks, b.activity
FROM   (SELECT regd, subjects, marks
        FROM   mytable
        WHERE  entry = 'FA1') a
JOIN   (SELECT regd, subjects, marks AS activity
        FROM   mytable
        WHERE  entry = 'SA1') b ON a.regd = b.regd AND a.subjects = b.subjects