合并行并将它们的值放在 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"。假设不能有多行具有这些值(即 regd
、subjectsa
和 activity
的组合是唯一的),您可以为这些活动中的每一个创建一个子查询,并且加入他们:
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
我想合并两个或多个具有相同名称的行,并将它们的值放在两个单独的列中。使用以下图像可以更清楚地了解问题:
我的预期输出是:
您可以在此处查看 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"。假设不能有多行具有这些值(即 regd
、subjectsa
和 activity
的组合是唯一的),您可以为这些活动中的每一个创建一个子查询,并且加入他们:
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