개발 창고/Database

[SQL] JOIN이란? - CROSS JOIN

로이제로 2020. 9. 17. 08:59
반응형


이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일)


 이전에는 가장 많은 빈도로 사용하는 INNER JOIN과 OUTER JOIN에 대해서 이야기했고, 오늘은 그것보단 빈도수가 적은 CROSS JOIN(교차 결합)에 대해 이야기해 볼까 합니다.

 

2020/09/15 - [개발 창고/데이터베이스 개발] - [SQL] JOIN이란? - INNER JOIN

 

[SQL] JOIN이란? - INNER JOIN

 데이터 베이스를 쓰다 보면 join이라는 말을 많이 듣게 됩니다. 간략하게 이야기하면 "JOIN은 두 테이블을 하나의 테이블로 만드는 것"  이라고 보시면 됩니다.  이게 무슨 뜻일까요??  일단 두 �

royzero.tistory.com

2020/09/16 - [개발 창고/데이터베이스 개발] - [SQL] JOIN이란? - OUTER JOIN

 

[SQL] JOIN이란? - OUTER JOIN

 이전 시간에는 INNER JOIN에 대해서 이야기했었습니다. 오늘은 OUTER JOIN에 대해 이야기해볼까 합니다. 2020/09/15 - [개발 창고/데이터베이스 개발] - [SQL] JOIN이란? - INNER JOIN [SQL] JOIN이란? - INNER..

royzero.tistory.com

 우선 이전 글에서의 테이블을 기준으로 설명드리도록 하겠습니다.


예시 데이터

 

  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