-
JOIN (INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN)DB 2021. 8. 20. 18:49
join이란?
두개 이상의 테이블을 연결해서 데이터를 검색하는 방법이다.
연결하기 위해선 테이블들이 적어도 하나의 칼럼을 공유하고 있어야하고,
이 공유하고 있는 컬럼을 PK 또는 FK값으로 사용해야한다.
우선 2가지의 테이블을 생성해보았다.
inner join
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 INNER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키;
left join
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 LEFT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키;
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 LEFT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 WHERE 조인테이블별칭.기준키 IS NULL;
right join
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 RIGHT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키;
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 RIGHT OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 WHERE 기준테이블 별칭 IS NULL;
full outer join
SELECT 테이블별칭.조회할칼럼, 테이블별칭.조회할칼럼 FROM 기준테이블 별칭 FULL OUTER JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 .....;
but!! Mysql 에선 지원하지 않기때문에 union 방식으로 해결한다.
SELECT * FROM 기준테이블 별칭 LEFT JOIN 조인테이블 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 UNION SELECT * FROM 기준테이블 별칭 RIGHT JOIN 조인테이블 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 WHERE 기준테이블별칭.기준키 IS NULL;
728x90반응형'DB' 카테고리의 다른 글
[mybatis]파라미터, 문자열 대체 (#{value}, ${value}) (1) 2021.06.21 SQL문을 이용하여 데이터 가져오기 -1 (0) 2021.06.05 DBMS(DataBase Management System) (0) 2021.06.04 데이터 베이스 (0) 2021.06.04 [SQL] FOREIGN KEY 제약 조건 (1) 2020.11.30