본문 바로가기

Sql

[SQL문법] Join:: WHERE 과 ON 의 차이

2개의 data를 병합할때 쓰이는 Join 구문에서 조건을 넣는 방식이죠.

WHERE 과 ON.
이 2가지의 차이를 간단히 알아보겠습니다. 

aa 라는 dataframe , bb라는 dataframe 이 있다고 가정을 해보겠습니다.
그리고 aa 와 bb 는 공통의 key 를 key 라고 갖는다고 합시다.
그리고 bb 는 game 이라는 항목이 더 있습니다.

아래의 명령문을 살펴보면


1) SELECT *
    FROM aa
    LEFT OUTER JOIN bb
    ON aa.key= bb.key
    WHERE bb.game= 'hearthstone';


2) SELECT *
    FROM aa
    LEFT OUTER JOIN bb
    ON ( aa.key= bb.key AND bb.game = 'hearthstone' );



힘의 차이가 느껴지십니까? 

1) 은 LEFT OUTER JOIN 을 수행하고, bb.game = hearthstone 을 찾게됩니다.
2) 는 bb 데이터프레임 중 bb.game = hearthstone 인 녀석들만 추린 후 aa 와 LEFT OUTER JOIN 을 하게됩니다. 

여기서 눈치 채셨겠지만...

결론적으로
1) 은 bb.game = hearthstone 인 데이터만 존재하게 되지만,
2) 는 bb.game = hearthstone 이 아닌 데이터도 존재하게 됩니다. 

확실히 SQL 이 직관적인 것 같습니다.

R의 여러가지 데이터처리 프로그램과 sqld 를 함께 쓰면 훨씬 데이터처리가 편해질 것 같네요. 

 

* 이 포스팅이 도움이 되셨다면 '공감' 버튼 부탁드립니다. 

'Sql' 카테고리의 다른 글

[SQL문법] Case 조건문, when then else end  (0) 2019.10.29
R 에서 SQL 사용하기  (0) 2019.10.11
PostgreSQL 와 R 연동하기  (0) 2019.02.05