반응형
LEFT Join이란?
기초SQL를 공부하다보면 조인을 벤다이어그램으로 집합으로 설명해준 예시가 많은데요. 그런데 저는 그게 조금 헷갈리더라구요. 생활코딩이라는 사이트를 통해 알게 된 'dataschool' 이란 사이트에 올라온 설명이 더 와닿습니다. 데이터분석공부하시는 분들이 참고하시면 좋을 사이트입니다.
우선 오늘 공부하게 될 'Left join'에 대해서 알아보면요.
아래의 Table1과 Table2라는 두개의 테이블이 있을 때, left join은 기준이 되는 표를 왼쪽에 두고, 이 표를 기준으로 오른쪽의 표를 합성해서 하나의 표를 만드는 방법입니다. ( 생활코딩 설명 참조 ) 즉 Table1에만 있는애들도 가지고 오는 것 + Table1과 Table2공통으로 있는값을 가지고오는것입니다. Left outer join 이라고 부르기도 한다.
생활코딩이라는 사이트의 유튜브강의를 통해 직접 실습을 해보았습니다.
아래의 설명을 보시면 Leftjoin 확실히 이해가 가실꺼에요.
LEFT Join 예시 : 아래 Topic과 author, Profile 이라는 테이블이 있다.
▶ Topic과 author라는 Table을 Leftjoin를 써서 붙인다면.아래와 같이 명령어를 만들어야 한다.
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.aid
: Topic테이블을 왼쪽에 놓고 author 테이블을 오른쪽에 놓겠다.
1) 우선 Topic테이블을 붙이고 author테이블의 컬럼을 다 옆에 붙여놓는다.
2) 그리고 author id와 topic테이블의 aid컬럼값중 동일한값을 붙인다. 그런데 아래 예시 중 Topic값중 Null에 해당하는 값은 author에 없으므로 그 옆은 Null로 표현한다.
3) 그런데 두개의 테이블만 조인시키는 거이 아니라, 3개 이상의 테이블을 붙이고 싶다면. 예를들어 저 위 Profile 테이블을 붙이고 싶다면.
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.aid LEFT JOIN profile ON author.profile_id = profile.pid;
: 위에서 만든표에 다시 Profile테이블을 오른쪽에 붙인 후 Join키인 profile id가 공통인 값만 붙여넣으면 된다.
4) 그런데 모든 컬럼이 필요업고 아래의 일부 컬럼 ' tid, topic.title, author_id, name, profile.title AS job_title ' 만 출력하고 싶다면!
SELECT tid, topic.title, author_id, name, profile.title AS job_title FROM topic LEFT JOIN author ON topic.author_id = author.aid LEFT JOIN profile ON author.profile_id = profile.pid;
반응형
'데이터분석공부' 카테고리의 다른 글
데이터분석공부 기초SQL To char / To date (0) | 2022.05.28 |
---|---|
데이터분석공부 SQL기초 CASE WHEN THEN ELSE END AS (0) | 2022.05.28 |
데이터분석공부 SQL LIKE % (0) | 2022.05.28 |
기초코딩공부, SQL 서브쿼리란? (0) | 2022.05.28 |
엑셀로배우는데이터분석, 광고투자비와 유입자사이의 상관관계 (0) | 2022.05.28 |