반응형

본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 SQL 기초 편"의 정리 내용입니다.

 

OUTER JOIN에는 크게 LEFT, RIGHT, FULL 3가지 방법이 있다. 본 글에서는 FULL OUTER JOIN을 다룬다.

FULL OUTER JOIN


  • LEFT OUTERT JOIN과 RIGHT OUTER JOIN을 합친 결과
  • OUTER는 생략 가능

FULL JOIN을 이용한 테이블 합치기

더보기
CREATE TABLE ADDR1 (
	"CUST_ID"	INT NOT NULL,
	"HOME_ADDR1"	CHAR(50) NOT NULL,
	"HOME_ADDR2"	CHAR(50) NOT NULL,
	PRIMARY KEY('CUST_ID')
);

INSERT INTO ADDR1
VALUES
(5465, '서울시 강남구 역삼동', '111-11'),
(2354, '서울시 종로구 공평동', '222-22'),
(5410, '서울시 중구 서소문동', '333-33'),
(6511, '서울시 송파구 문정동', '444-44');


CREATE TABLE MOBILE1 (
	"CUST_ID"	INT NOT NULL,
	"MOBILE_NO"	CHAR(50) NOT NULL,
	PRIMARY KEY('MOBILE_NO')
);

INSERT INTO MOBILE1
VALUES
(5465, '010-1111-1111'),
(2354, '010-2222-2222'),
(5410, '010-3333-3333'),
(5410, '010-7777-7777'),
(7979, '010-7979-7979');

 

위의 합쳐진 테이블을 만들기 위한 SQL 문장은?


SELECT ADDR1.CUST_ID, ADDR1.HOME_ADDR1, ADDR1.HOME_ADDR2,
       MOBILE1.CUST_ID AS CUST_ID2, MOBILE1.MOBILE_NO

FROM ADDR1 FULL JOIN MOBILE1
ON ADDR1.CUST_ID = MOBILE1.CUST_ID;
  • 다만 sqlite에서는 FULL JOIN을 지원하지 않음
    • Error: RIGHT and FULL OUTER JOINs are not currently supported
반응형

+ Recent posts