Left outer join을 Mysql에서 실습해보겠습니다.
Left outer join
퍼즐 조각을 보다보니 Left outer join이 생각나서 캡춰 해보았습니다.
퍼즐조각도 왼쪽의 퍼즐의 그림을 보고 오른쪽에 붙여 나가다 보면
퍼즐이 완성이 되는데요..
Left outer join도 마찬가지 입니다.

Mysql Workbench를 실행시키고
아래의 쿼리문을 실행해보세요.
City table 정보 확인
SQL
Select * from world.city
SQL설명
World db에 있는 city테이블의 데이터를 모두 추출
위의 이미지와 같이 City테이블에는 4079개의 행이 있네요.
Country Table정보 확인
SQL
Select * from world.country
SQL설명
World db에 있는 country테이블의 데이터를 모두 추출
위의 이미지와 같이 Country테이블에는 239개의 행이 있습니다.
City Table 과 Country테이블을 Left outer join 한 경우
SQL
Select *
from
world.city c
left outer join
world.country co
on c.name = co.name

SQL설명
City 테이블과 Country 테이블의 name컬럼을 기준으로 Left outer join
두개의 테이블에 보면 공통으로 들어가 있는 컬럼이 Name입니다.
그래서 name을 키값으로 하여 연결 하였습니다.
결과를 보면 City테이블과 country테이블에서 같은 이름으로 되어 있는 8개행은
데이터들이 확인이 됩니다.(빨간박스)
하지만 데이터들이 없는 경우 파란박스 처럼 null로 확인이 됩니다.
기준이 되는 테이블이 City테이블이기 때문에 이 결과는 4079개의 행의 결과가 나옵니다.
왼쪽 테이블 기준으로 오른쪽의 테이블 정보가 붙었기 때문입니다.
자.. 그럼 이 것을 한번 Inner join을 해보겠습니다.
City Table과 Country Table를 Inner join한 경우
자.. 차이점이 확인 되시나요??
Inner join을 할 경우에는 두테이블의 키값이 같이 있는 데이터 들만 추출이 되어 8개
행의 결과만 나오게 됩니다.
데이터를 추출할때 대부분이 두개 이상의 테이블의 같은 키값에 대한 결과를
추출해 내는게 대부분입니다.
하지만 Join의 정확한 개념을 모르는 경우
Left outer Join을 쓰는 경우가 많습니다.
왜냐하면 Left outer Join을 사용하는 경우 전체 데이터가 확인이 되기 때문에
Join을 제대로 했는지 확인이 가능하기 때문일것 같습니다.
어떤 데이터를 추출해야할지에 대해서 잘 계획을 하시고,
Inner join, Left outer join을 필요에 따라 잘 넣어서 사용하시기 바랍니다.
제가 데이터 추출을 해보았을때,
거의 90%정도가 inner join이고
10%정도만 left outer join을 사용을 하고 있습니다.
'IT > SQL (Structured Query Language)' 카테고리의 다른 글
SQL 변환 함수 사용방법(날짜, 숫자) (0) | 2020.02.01 |
---|---|
Mysql의 Group by, Distinct, alias사용방법 (0) | 2019.12.31 |
Table를 연결하는 Left outer join, Right outer join 사용하는법(Step5) (2) | 2019.04.11 |
Table를 연결하는 Join의 사용방법 (1) | 2019.02.22 |
Mysql 설치 방법 (0) | 2019.02.22 |
최근댓글