문제
다음 SQL에서 CROSS JOIN의 특성으로 가장 적절한 것은?
SQLSELECT p.product_name, c.color_name FROM products p CROSS JOIN colors c WHERE p.category = 'SHIRT';
제품 테이블: 5개 행 (SHIRT 카테고리 2개) 색상 테이블: 8개 행
① 결과는 총 13개 행이 반환된다
② 결과는 총 16개 행이 반환된다
③ 결과는 총 40개 행이 반환된다
④ WHERE 조건 때문에 CROSS JOIN을 사용할 수 없어 오류가 발생한다
정답
2번
해설
CROSS JOIN은 두 테이블의 모든 행을 조합하는 카티시안 곱을 생성합니다. WHERE 절은 JOIN 후에 적용되므로, 먼저 products와 colors의 모든 조합(5×8=40개)이 생성되고, 그 후 p.category = 'SHIRT' 조건으로 필터링되어 SHIRT 카테고리 제품 2개 × 8개 색상 = 16개 행이 반환됩니다.