이전에는 가장 많은 빈도로 사용하는 INNER JOIN과 OUTER JOIN에 대해서 이야기했고, 오늘은 그것보단 빈도수가 적은 CROSS JOIN(교차 결합)에 대해 이야기해 볼까 합니다.
2020/09/15 - [개발 창고/데이터베이스 개발] - [SQL] JOIN이란? - INNER JOIN
2020/09/16 - [개발 창고/데이터베이스 개발] - [SQL] JOIN이란? - OUTER JOIN
우선 이전 글에서의 테이블을 기준으로 설명드리도록 하겠습니다.
예시 데이터
TB_BOARD
TB_BOARD_COMMENT
CROSS JOIN (교차 결합)
CROSS JOIN은 간략하게 설명하면 테이블A와 테이블B를 조건 없이 모두 매칭 한 결과이라고 보시면 됩니다.
문법은 아래와 같습니다.
/* 명시적(explicit) CROSS JOIN 표현 */
SELECT *
FROM 테이블1
CROSS JOIN 테이블2
/* 암시적(implicit) CROSS JOIN 표현 */
SELECT *
FROM 테이블1
, 테이블2
CROSS JOIN이라고 명시를 해주거나 콤마(,)로 걸어주고 조건절에서 매칭해주지 않으면 CROSS JOIN이 생성되게 됩니다.
SELECT *
FROM TB_BOARD
CROSS JOIN TB_BOARD_COMMENT
이를 위의 예시 테이블을 기준으로 호출해본다면 다음과 같은 결과를 확인하실 수 있을 겁니다.
보면 JOIN을 어떤 순서로 했는지 확인이 가능하실 텐데, 그 이유는 결과 화면에서 보시면 첫 번째 컬럼인 TB_BOARD의 BBS_SEQ가 1 → 2 →3으로 한번 훑고 지나간 이후에 다시 1 → 2 →3이 호출되는 것을 확인하실 수 있기 때문입니다.
그렇다면 이는 언제 사용하면 좋은가?라는 질문이 생길 수 있는데, 만약 게시글에 공통의 첨부파일을 첨부하고 싶다고 한다면, 다음과 같이 사용 가능할 것입니다.
SELECT *
FROM TB_BOARD
CROSS JOIN TB_BOARD_FILE
WHERE TB_BOARD_FILE.FILE_TYPE = '공용'
다음과 같이 선언해주면 첨부파일 유형이 '공용'인 것들이 모든 게시글에 포함되어 보이게 될 것입니다.
'개발 창고 > Database' 카테고리의 다른 글
[SQL] GROUP BY란? - 기본편 (0) | 2020.09.23 |
---|---|
[SQL] 별칭(Alias) 활용하기 (0) | 2020.09.22 |
[SQL] JOIN이란? - OUTER JOIN (0) | 2020.09.16 |
[SQL] JOIN이란? - INNER JOIN (0) | 2020.09.15 |
[SQL] WITH절 사용하는 방법 (11) | 2020.09.02 |