본문 바로가기

DATABASE

[DataBase] LEFT OUTER JOIN 사용 시 주의 사항

 

 

 

 

 

 

 

기존에는 기준 테이블은 변하지 않고 조인 조건에 맞는 행의 컬럼들이

기준 테이블에 추가 된다고 생각하고 사용하여 원하는 결과를 얻었다.

 

LEFT OUTER JOIN은 기준 테이블의 각 행에 조인 조건에 맞는 행이 1개 이하일 경우를 전제로 하고있다.

(조인되는 행이 없다면 null)

 

보통 외래키를 사용하여 조인하므로 문제가 발생하지 않았다.

 

하지만 기준 테이블의 행에 조인 되는 행이 2개 이상이 되면 중복 데이터가 발생 한다.

그렇게 되면 행이 중복 되어 원하는 결과를 얻을 수 없다.

 

중복을 제거하여 사용해야 한다.

 

 

 

중복 제거 방법

 

1.테이블간 제약 조건을 명확히 한다.

 

2. 조인 조건 추가 ( where or having )

 

3. distinct 사용 - 시스템 부하 발생할 수 있음.

 

4. group by 사용

 

5. top 1, limit 사용