我的表上有这个查询,它返回下面给出的表
SELECT sub.Subject_Name, count(sa.Attendance) AS Lectures_Attended FROM student_attendance sa
INNER JOIN TeacherSubjects ts on (sa.TeacherSubject_ID = ts.TeacherSubject_ID)
INNER JOIN Subjects sub on(ts.Subject_ID = sub.Subject_ID)
where sa.Student_ID = 1 AND sub.Semester = '8th-Semester' AND sa.Attendance=1
GROUP by sa.TeacherSubject_ID
UNION ALL
SELECT sub.Subject_Name, count(sa.Attendance) AS Total_Lectures FROM student_attendance sa
INNER JOIN TeacherSubjects ts on (sa.TeacherSubject_ID = ts.TeacherSubject_ID)
INNER JOIN Subjects sub on(ts.Subject_ID = sub.Subject_ID)
where sa.Student_ID = 1 AND sub.Semester = '8th-Semester'
GROUP by sa.TeacherSubject_ID
SubjectName LecturesAttended
Php 2
Php 3
现在我不需要第二行,即Php|3
我需要像这个一样显示表格
SubjectName LecturesAttended TotalLectures
Php 2 3
您只需要将查询减少到:
SELECT
sub.Subject_Name,
COUNT(IF(sa.Attendance=1,1,NULL)) AS Lectures_Attended,
COUNT(*) Total_Lectures
FROM student_attendance sa INNER JOIN TeacherSubjects ts ON (sa.TeacherSubject_ID = ts.TeacherSubject_ID)
INNER JOIN Subjects sub ON (ts.Subject_ID = sub.Subject_ID)
WHERE sa.Student_ID = 1 AND sub.Semester = '8th-Semester'
GROUP by sa.TeacherSubject_ID;
请参阅MySQL IF((函数了解IF函数在MySQL中的工作方式。