[SQL] CROSS JOIN

전도운·2024년 7월 4일
0
post-custom-banner

데이터를 다루면서 여러 데이터를 JOIN하여 사용하는 일은 비일비재하다. JOIN은 기본적인 INNER JOIN, LEFT/RIGHT JOIN, OUTER JOIN 외에도 테이블을 키 없이 결합하는 CROSS JOIN이라는 구문이 있다. 이를 자세히 알아보도록 하자.

CROSS JOIN

  • 구문
TABLE_A CROSS JOIN TABLE_B
  • 두 테이블을 이용해 만들 수 있는 모든 조합의 데이터를 생성하여 하나의 테이블로 반환하는 구문이다. KEY가 없어도 무방하며, ON 구문이 필요하지 않다.

  • CROSS JOIN은 두 데이터행의 곱만큼 데이터가 생성되어 용도가 제한적이나, 누락 없이 데이터의 모든 속성에 해당하는 값을 나열하고자 할 때 유용하게 사용할 수 있다.

  • 예를 들어, 아래와 같은 두 테이블이 있다고 하자.

ID성별연령대
1MALE10
2FEMALE10
연령대
10
20
  • 두 테이블을 CROSS JOIN한 결과는 아래와 같다. 좌측 첫 번째 연령대 칼럼은 기존 테이블에서 온 것으로, 모든 데이터가 10으로 표시되었다.

  • 반면, 두 번째 연령대 칼럼은 CROSS JOIN의 결과 생성된 것으로 이를 통해 가능한 성별 및 연령대의 모든 조합을 한 테이블에 구현하였다.

ID성별연령대연령대
1MALE1010
1MALE1020
2FEMALE1010
2FEMALE1020
profile
의미 있는 한걸음을 추구합니다.
post-custom-banner

0개의 댓글