개발/Database

[ORACLE] LEFT OUTER JOIN 이란, JOIN 시 주의해서 사용해야 하는 부분

Hide 2024. 10. 28. 21:40

데이터 조회 시 JOIN이 필요한 경우 LEFT OUTER JOIN을 자주 사용한다.

보고싶은 테이블을 두고, 부속해서 붙일 데이터들을 연결하는 식이다.

 

 

왼쪽에 있는 테이블은 변하지 않고 조인 조건에 맞는 행의 컬럼들이 기준 테이블 행에 추가된다.

 

사용예시

SELECT * FROM Atest a JOIN Btest b ON a.id = b.id

 

LEFT OUTER JOIN 사용 시 테이블의 행에 A와 매칭되는 B가 없다면 A의 컬럼에 B는 NULL값이 된다.

보통 외래키를 사용하여 조인하므로 문제 없이 사용 가능하다.

 

하지만 A테이블의 행에 조인되는 행이 2개 이상이 된다면 A테이블의 데이터가 중복되어 표기된다.

 

 조인될 값이 유니크하지 않다면 A값이 중복되어 표기된다. 

 

조인 조건을 추가하거나, DISTINCT를 사용하거나, GROUP BY를 사용하거나, TOP 1, LIMIT를 사용하여 중복 제거 후 사용하면 된다.

 

LEFT OUTER  외 다른 조인 또한 마찬가지이다.