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

如何从PHP中的单个表连接Mysql中具有多个条件的多个查询?,mysql,sql,pivot,Mysql,Sql,Pivot,我在MySQL中有一个表 ------------------------------ | ID | Subject | Marks | Term | ------------------------------- | 1 | English | 45 | 1 | | 2 | Hindi | 34 | 1 | | 3 | English | 54 | 2 | | 4 | Hindi | 33 | 2 | --------------

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

您可以使用条件聚合来透视数据集:

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
试试这个

SELECT A.Subject, A.Marks AS Marks_Term1, B.Marks AS Marks_Term2
FROM {tableName} A, {tableName} B
WHERE A.Subject = B.Subject

到目前为止,您尝试过什么?我尝试过在查询之间加入联接,但它不起作用。添加您尝试过的代码,以便在每一行主题上以及与该主题相关的所有投票?对@Albertosinagliathanks很多,但是如果我有多个条件,请您指导我。事实上,我有一张更大的桌子,上面有多个科目和不同的课程。如果我试图运行此代码,它会显示分配给不同类的所有主题,并将其标记为空。这是可行的,但有一个问题,如果未输入术语2,则我希望在值中显示为空。