문제해설
student가 참석한 과목의 이름과 참석한 과목의 횟수를 구해야함.
팁
처음에 세 테이블을 outer join 시키려고 했으나,
subject_name이 없는, Bob의 Physics같은 경우에는 참석하지 않아서 0이 나오지 않았다
그러므로 student와 subject의 Cross join을 사용해서 모든 subject_name이 나오게 해야했다.
정답
select a.student_id, a.student_name, b.subject_name, count(c.subject_name) as attended_exams
from Students a cross join Subjects b
left join Examinations c
on a.student_id = c.student_id
and b.subject_name=c.subject_name
group by a.student_id, a.student_name, b.subject_name
order by a.student_id, b.subject_name