如何从PHP的单个表中联接Mysql中具有多个条件的多个查询?

时间:2019-12-06 22:08:46

标签: mysql sql pivot

我在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

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
相关问题