我在MySQL中只有一个表
------------------------------
| ID | Subject | Marks | Term |
-------------------------------
| 1 | English | 45 | 1 |
| 2 | Hindi | 34 | 1 |
| 3 | English | 54 | 2 |
| 4 | Hindi | 33 | 2 |
------------------------------
我想要类似的输出
--------------------------------------
| Subject | Marks_Term1 | Marks_Term2 |
--------------------------------------
| English | 45 | 54 |
| Hindi | 34 | 33 |
--------------------------------------
请帮助我提供代码,感谢您的答复。
SELECT marks_entry.subject_id, marks_entry.main_exam, marks_entry.main_exam
FROM marks_entry
WHERE marks_entry.term_id = 1
LEFT JOIN SELECT marks_entry.subject_id, marks_entry.main_exam, marks_entry.main_exam FROM marks_entry WHERE marks_entry.term_id = 2
答案 0 :(得分:0)
您可以使用条件聚合来枢转数据集:
select
subject,
max(case when term = 1 then marks end) marks_term1,
max(case when term = 2 then marks end) marks_term2
from mytable
group by subject
答案 1 :(得分:0)
尝试一下
SELECT A.Subject, A.Marks AS Marks_Term1, B.Marks AS Marks_Term2
FROM {tableName} A, {tableName} B
WHERE A.Subject = B.Subject