MySQL-从同一个表连接查询

MySQL-从同一个表连接查询,mysql,join,Mysql,Join,期望输出- 我试图在Attendant_Date将同一个表中的这4个不同查询合并起来,但我不知道如何进行。 最终输出为出席日期、P、A、MC(共4列) 有人能帮我吗?非常感谢 尝试在from语句中添加同一个表两次,然后将它们设置为变量名并正确重命名所有内容。比如说, FROM Student S1, Attendance A1 WHERE S1.Stud_ID = A1.Stud_ID 另一个呢 FROM Student S2, Attendance A2 WHERE S2.Stud_ID

期望输出-

我试图在Attendant_Date将同一个表中的这4个不同查询合并起来,但我不知道如何进行。 最终输出为出席日期、P、A、MC(共4列)


有人能帮我吗?非常感谢

尝试在from语句中添加同一个表两次,然后将它们设置为变量名并正确重命名所有内容。比如说,

FROM Student S1, Attendance A1
WHERE S1.Stud_ID = A1.Stud_ID 
另一个呢

FROM Student S2, Attendance A2
WHERE S2.Stud_ID = A2.Stud_ID 

问题是联接上的外部表和内部表存在冲突,可能导致您的问题。我设法得到了这个结果()。如何连接来自同一列的另外两个查询,如此链接所示:


为什么需要4个自连接?你能描述一下你的问题吗?也许联盟可以解决你的问题我需要4个自我加入的原因。我的另一个问题:
FROM Student S2, Attendance A2
WHERE S2.Stud_ID = A2.Stud_ID 
SELECT a1.Attend_Date, t.P
FROM Student s1, Attendance a1

RIGHT JOIN (
SELECT a2.Attend_Date, COUNT(a2.AttendDet_Type) as P
FROM Student s2, Attendance a2
WHERE s2.Stud_ID = a2.Stud_ID 
AND s2.Stud_Class = '1A1' 
AND a2.Attend_Date BETWEEN '2014-01-01' AND '2014-12-01'  
AND a2.AttendDet_Type = 'P'
GROUP BY a2.Attend_Date
) as t ON a1.Attend_Date = t.Attend_Date

WHERE s1.Stud_ID = a1.Stud_ID
AND s1.Stud_Class = '1A1' 
AND a1.Attend_Date BETWEEN '2014-01-01' AND '2014-12-01'  
GROUP BY a1.Attend_Date