문과생의 우당탕탕 공부 기록

06. CROSS JOIN) CATESIAN PRODUCT연산과 크로스조인 본문

SQL 공부/조인과 집계 데이터

06. CROSS JOIN) CATESIAN PRODUCT연산과 크로스조인

드르렁쿨쿨 2023. 1. 14. 18:38

CROSS JOIN은 말 그대로 서로의 집합을 크로스해서 조인하는 것이다.

 

CROSS JOIN의 의미

두개의 테이블의 CATESIAN PRODUCT 연산의 결과를 출력한다. 데이터 복제에 많이 쓰이는 기법이다.

 

테이블을 하나 제작해서 예시로 연습해보자.

CROSS_T1과 CROSS_T2라는 이름의 테이블을 만들자

TI의 테이블은 CHARACTER(1BYTE)를 PRIMARY KEY로 채우고

T2의 테이블은 정수인 SCORE를 PRIMARY KEY로 채운다

 

T1에 각각 A,B라는 레이블을 채우고

T2에 각각 1,2,3이라는 스코어를 채운다.

제대로 만들어졌는지 확인해보자. T1과 T2둘다 잘 만들어졌다.

자 두개를 CROSS JOIN하니까 다음과 같은 결과가 만들어졌다.

 

LABEL    |     SCORE

A                            1

B                            1

A                            2

B                            2

A                            3

B                            3

T1을 기준으로 T2랑 CROSS_JOIN한거여서, T1 LABEL 기준인 AB AB AB 순으로 나온다.SCORE는 A 1 B 1, A2 B2, 등등 이런식으로

A만 쫘르륵 보고싶으면 ORDER BY LABEL로 하면 쭈루룩 AAA BBB 이렇게나온다.

해당 SQL은  CROSS JOIN을 사용하지 않고,

그냥 SELECT * FROM CROSS_T1, CROSS_T2 ORDER BY LABEL ;한 것이다.

T1이랑 T2로부터 그냥 SELECT 전부 다 한거여서 전부 결과값으로 나오는데

LABEL 기준으로 ORDER한거니까 같은 집합이 나온다.

 

SQL에서는  2개의 SQL문의 결과 집합이 동일하면 같은 SQL문이다.

SQL문의 목적은 집합을 출력하는 것이다. -> 정보가 같다면 SQL문 자체는 다르더라도, 동일한 SQL문이다.

* 패캠 이경오 강사님 어록

 

크로스 조인은 쉽게 말해 조합가능한 모든 경우를 출력하는 것임!

 

 

Comments