我想合并两个或多个具有相同名称的行,并将它们的值放在两个单独的列中。以下图片可以更清楚地说明问题:
我的预期产出是:
你可以在这里查看小提琴: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”。假设不能有多个具有这些值的行(即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

关于mysql - 合并行并将其值放在mysql的单独列中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31308617/

10-10 06:54