웹앱프로젝트/Mysql

LEFT OUTER JOIN 한 쪽 테이블에 없어도 join해서 null로 보여줌

Minah Park 2022. 7. 14. 10:09
반응형

항상 까먹어서 매번 찾아보길래 기록해두기!!!

sdet_info 테이블에는 존재하는데 prep_sdet_info 테이블에는 존재하지않는 정보들을 가져오고자 함

공통된부분 + 왼쪽테이블에만 존재하는거

Inner join은 공통된 부분만 가져오는데 이거는 일단 left 이기 때문에 왼쪽에 먼저 정의한 테이블이 중심인데, 그 중심이 되는 테이블에서 공통되는 부분과 중심 테이블에만 있는 부분이 함께 출력된다. 

출처: https://www.dofactory.com/sql/outer-join

 

SELECT 
	*
FROM 
	sdet_info as s 
	left outer join 
	prep_sdet_info as ps 
	on ps.KEDI_CD=s.KEDI_CD
	where stus='정상'
    and
    s.KEDI_CD IS NULL;

on : 부분에는 공통적으로 들어가는 부분에 대한 조건을 넣어준다 (다른 join과 같은 사용용도)

하지만, 나는 공통된 부분은 제외하고 싶었기 때문에 where 절에 중심테이블인 sdet_info 에만 존재하는 컬럼으로 조건을 넣어줬다. 그래서 sdet_info에만 있는 데이터들만 나왔다.

 

반응형

 

반응형