2015-01-10 32 views
0

所需的輸出 - https://www.dropbox.com/s/1mnrabcefvezt89/test11.png?dl=0MySQL的 - 從同一個表連接查詢

我試圖加入來自同一臺上Attend_Date這4個不同的查詢,但我不知道該怎麼做。 最後的結果將是Attend_Date,P,A,MC(共4列)

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

誰能幫助我嗎?非常感謝!!

+0

爲什麼你需要4個自加入?你能描述你的問題嗎?也許UNION可以解決你的問題http://msdn.microsoft.com/en-us/library/ms180026.aspx –

+0

我的理由爲什麼我需要4個自我加入。 我的其他問題:http://stackoverflow.com/questions/27836104/display-mysql-query-in-asp-chart-using-multiple-series –

回答

0

嘗試在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 

問題是對外部表和內部表的連接有衝突,可能會導致您的問題

0

好的傢伙。我設法得到了這個結果(https://www.dropbox.com/s/3l4q76mlskc8ze1/test12.PNG?dl=0)。如何加入來自同一列的另一個2個查詢,顯示在此鏈接:https://www.dropbox.com/s/1mnrabcefvezt89/test11.png?dl=0

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