우잉's Development

SQLite3_CROSS JOIN 본문

개발/SQLite3

SQLite3_CROSS JOIN

우잉이 2022. 1. 7. 11:32
728x90
반응형

CROSS JOIN 절

: 2개의 테이블을 조인하여 데이터를 검색하는 방법 중에 두 테이블의 데이터의 모든 조합을 받아오는 방법

 

1. 교차 조인

두 테이블의 데이터의 모든 조합을 받아온다. 

<user>

ID NAME
1 Kim
2 Kang
3 Han

<phone>

ID 번호
1 010-1111-1111
2 010-2222-2222
3 010-3333-3333
ID NAME ID 번호
1 Kim 1 010-1111-1111
1 Kim 2 010-2222-2222
1 Kim 3 010-3333-3333
2 Kang 1 010-1111-1111
2 Kang 2 010-2222-2222
2 Kang 3 010-3333-3333
3 Han 1 010-1111-1111
3 Han 2 010-2222-2222
3 Han 3 010-3333-3333

조인된 데이터의 수는 왼쪽 테이블의 데이터가 n개이고 오른쪽 테이블의 데이터가 m개이면 n x m 개가 되고, 경우에 따라서는 매우 많은 개수가 되므로 주의해야 한다.

 

2. CROSS JOIN 절 사용법

SELECT 테이블명.컬럼명, ...
FROM 테이블명1
CROSS JOIN 테이블명2
ON 테이블명1.컬럼명1 = 테이블명2.컬럼명2;

일단 user테이블과 phone테이블을 생성하고 데이터를 추가하겠습니다.

준비가 되었으면 user테이블과 phone테이블을 cross join을 합니다. ON 절을 지정할 수도 있지만 CROSS JOIN 절은 조인 조건을 지정하지 않고 사용하는 경우가 많을 것으로 생각되기에 다음의 설명에서도 조인 조건은 생략하도록 하겠다.

3. 조회할 데이터 컬럼 지정 방법

user 테이블의 name컬럼이나 phone테이블의 phone컬럼은 구분이 되므로 테이블명을 쓰지 않아도 되지만 

user 테이블의 id와 phone테이블의 id는 구분이 되지 않으므로 테이블명을 써주었습니다.

 

 

728x90
반응형

'개발 > SQLite3' 카테고리의 다른 글

SQLite3_명령어1  (0) 2022.01.07
SQLite3_NATURAL 키워드, SELF JOIN  (0) 2022.01.07
SQLite3_OUTER JOIN  (0) 2022.01.07
SQLite3_INNER JOIN  (0) 2022.01.07
SQLite3_ CASE 절, GROUP BY 절, HAVING 절  (0) 2022.01.06
Comments