SQL 50 › 索引 › A2 Basic Joins 基础 JOIN
LC 1280学生们参加各科测试的次数Students and Examinations 简单
Students、Subjects、Examinations 三表;对每位学生与每门科目的组合统计参加测试的次数(没参加为 0),按学生 id、科目名排序。
思路 Students CROSS JOIN Subjects 补齐全组合,再 LEFT JOIN 计数。
SELECT S.student_id, S.student_name, U.subject_name, COUNT(E.subject_name) AS attended_exams FROM Students S CROSS JOIN Subjects U LEFT JOIN Examinations E ON E.student_id = S.student_id AND E.subject_name = U.subject_name GROUP BY S.student_id, S.student_name, U.subject_name ORDER BY S.student_id, U.subject_name;