CROSS JOIN은 두 테이블 간의 모든 가능한 행 조합을 생성한다. 이 조인 방식은 ON 절이 없으며, 첫 번째 테이블의 각 행을 두 번째 테이블의 모든 행과 결합하여 결과 집합을 만든다.CROSS JOIN은 대규모 테이블에서는 결과 집합이 매우 클 수 있어서, 성능에 영향을 줄 수 있다. (조심)WHERE 절에 특정 조건을 잘 걸어주면 CROSS JOIN을 INNER JOIN 처럼 쓸 수 있다. (그러나 굳이? 비효율적)MySQL
SELECT
A.student_id,
A.student_name,
B.subject_name,
COUNT(C.student_id) AS attended_exams
FROM
Students A
CROSS JOIN Subjects B
LEFT JOIN Examinations C ON C.student_id = A.student_id
AND C.subject_name = B.subject_name
GROUP BY
A.student_id,
B.subject_name
ORDER BY
A.student_id,
B.subject_name;