구현해보기
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