DB/SQL

LEFT JOIN 시 주의할 점

꾹꾹이 2022. 9. 4.
728x90

left join(혹은 left outer join) 시 주의할 점에 대해 알아보자.

left join 시 왼쪽에 있는 테이블에만 집중해서 실수를 할 수 있다.

 

 

 

left join은 왼쪽 테이블을 기준으로 오른쪽 데이터를 불러오는 것이다.

그런데 여기에는 함정이 있다. 

위와 같은 결과를 얻고자 한 상황이다.

위 예시는 N:1 관계이다. 그런데 1:N 관계가 되면 전체 행의 개수가 왼쪽 테이블의 행 개수보다 늘어나고 중복 데이터가 발생한다.

 

 

그러므로 left join 시 distinct나 group by로 중복제거를 해야 한다.

 

데이터를 검증할 때 count를 이용해서 행의 개수가 맞는지 확인하는 방식을 사용한다. 

틀릴 이유가 없는데 행의 개수가 다른 경우 이런 함정에 빠진 케이스가 많았다.

위의 사항에 유의하며 개발하는 습관을 들여야겠다.

 

 

참조:https://brunch.co.kr/@qqplot/22?

댓글