세조목

SQL 정리(Cross Join)(23.12.26) 본문

데이터 분석 공부/SQL

SQL 정리(Cross Join)(23.12.26)

세조목 2023. 12. 26. 21:22

Cross Join

Join에는 여러가지 종류가 있다.

Inner join, Left join, Right join 등등

그런데 각각의 테이블 內 모든 데이터들의 경우의 수를 표시하는 join이 있다.

그것이 바로 Cross Join

이런 개념이다.

이같은 cross join을 활용해야하는 예제를 한번 살펴보자

 

https://leetcode.com/problems/students-and-examinations/description/

 

Students and Examinations - LeetCode

Can you solve this real interview question? Students and Examinations - Table: Students +---------------+---------+ | Column Name | Type | +---------------+---------+ | student_id | int | | student_name | varchar | +---------------+---------+ student_id is

leetcode.com

이렇게 3개의 테이블이 존재하고 각각의 학생들이 각각의 시험이 응시한 횟수를 구하라고 요구한다.

이 예제에서 문제가 되는건 Alex라는 친구는 시험에 응시하지 않았기때문에 Math, Physics, Programming을 붙일수가 없는데 어떻게 하면 아래 이미지에서처럼 각 과목들을 붙일수 있느냐는것이다.

이 때 Students 테이블과 Subjects 테이블을 Cross Join으로 붙여주면 각 학생들이 각 과목들을 수강하는 모든 경우의 수를 구함으로써 Alex에 Math, Physics, Programming을 붙일 수 있게 된다.