0
我有這些表:MYSQL連接左3個表連接
pupils: (id_pupil, name, surname, email, user, pass, level, class)
incidents: (id_incidents, date, time, type_incident, comments, id_pupil, id_user, subject, id_trimester)
qualifications: (id_qualification, qualification, date, time, subject, id_pupil, id_user, id_trimester, type_qualification)
,我做這個查詢:
SELECT
pupils.id_pupil
, name
, surname
, round(avg(qualifications.calificacion),2) as average
, count(qualifications.calificacion) as count
, COALESCE(sum(type_incident='miss' and level=1 and class='A' and id_trimester=1),0) as misses
, COALESCE(sum(type_incident='delay' and level=1 and class='A' and id_trimester=1),0) as delays
, COALESCE(sum(type_incident='attitude' and level=1 and class='A' and id_trimester=1),0) as attitude
, COALESCE(sum(type_incident='miss_justif' and level=1 and class='A' and id_trimester=1),0) as misses_justificadas
FROM
pupils
left join incidents ON incidents.id_pupil=pupils.id_pupil
left join qualifications ON qualifications.id_pupil=pupils.id_pupil
WHERE
level=1
and class='A'
and id_trimester=1
and type_qualification='class'
and qualifications.id_trimester=incidents.id_trimester
GROUP BY id_pupil
但問題是,正確的結果,我就一定得會是:
,我也得到:
的問題是,多組序類資格的未命中(17x6(2個缺失,1個延遲,1個姿態和2 misses_just)= 102)),並且我不數量和希望出現這種情況。我想要在第一張照片中顯示正確的信息。
您想幫我嗎?
謝謝!
你需要在子查詢中進行聚合,然後joi與那。 – Barmar
而我該怎麼做呢?我不知道,對不起 –
這不是一個完全重複的問題,但我的答案顯示瞭如何使用子查詢進行連接。 – Barmar