본문 바로가기
코딩/Oracle DB

<Oracle> JOIN 질의문

by 메모노어 2022. 7. 27.

JOIN 질의문의 집합 표현

 

 

 

JOIN 질의문 데이터 표현

 

 

구현해보기

CREATE TABLE basket_a (
	id			VARCHAR(20) NOT NULL,
	fruit		VARCHAR(10) NOT NULL,
	id_category	VARCHAR(20)
);

CREATE TABLE basket_b (
	id			VARCHAR(20) NOT NULL,
	fruit		VARCHAR(10) NOT NULL,
	id_category	VARCHAR(20)
);

CREATE TABLE basket_c (
	id			VARCHAR(20) NOT NULL,
	recipe		VARCHAR(10) NOT NULL
);

INSERT INTO basket_a VALUES ('1', 'Apple', NULL);
INSERT INTO basket_a VALUES ('2', 'Orange', NULL);
INSERT INTO basket_a VALUES ('3', 'Banana', '1');
INSERT INTO basket_a VALUES ('4', 'Cucumber', '1');

INSERT INTO basket_b VALUES ('1', 'Apple', NULL);
INSERT INTO basket_b VALUES ('2', 'Orange', NULL);
INSERT INTO basket_b VALUES ('3', 'Watermelon', '1');
INSERT INTO basket_b VALUES ('4', 'Pear', '1');

INSERT INTO basket_c VALUES ('1', '쥬스');
INSERT INTO basket_c VALUES ('2', '생과일');

 

  • INNER JOIN
--inner join (교집합)
SELECT * FROM basket_a ba --별명 ba로 짓는다.
INNER JOIN basket_b bb --basket_a와 join할 테이블 명
ON ba.fruit = bb.fruit; --join을 엮을 기준(조건)
--basket_a의 fruit컬럼의 데이터와 basket_b의 fruit컬럼의 데이터와 같은 튜플(row)을 찾아라

 

  • LEFT OUTER JOIN
--left outer join (inner join + 왼쪽 테이블의 나머지 튜플(row))
SELECT * FROM basket_a ba
LEFT OUTER JOIN basket_b bb ON ba.fruit = bb.fruit;

 

  • RIGHT OUTER JOIN
--right outer join
SELECT * FROM basket_a ba
RIGHT OUTER JOIN basket_b bb ON ba.fruit = bb.fruit;

 

  • FULL OUTER JOIN
--FULL OUTER JOIN
--INNER JOIN 튜플(row) + 왼쪽 테이블의 나머지 튜플(row) 더한 후
--오른쪽 테이블의 나머지 튜플(row)
SELECT * FROM basket_a ba
FULL OUTER JOIN basket_b bb ON ba.fruit = bb.fruit;

 

 

 

 

 

 

 

참조자료

https://programmerpsy.tistory.com/100

 

[SQL] 2. 데이터 조인

1. Join의 종류 Join이란? 두 테이블에 공통으로 있는 칼럼을 이용해 연결 시키는 것 종류 설명 INNER 조건이 정확히 일치하는 데이터만 출력 LEFT OUTER 앞에 있는 데이터는 모두 출력, 뒤에 있는 데이

programmerpsy.tistory.com