work work
SQL] where 절과 on 절의 차이..?
라쥬나
2012. 2. 21. 14:49
조건 없이 그냥 JOIN :
> select a.name, a.birth_day, a.cust_code, b.PARTITION from CUST_G a LEFT OUTER JOIN CUST b ON (a.name = b.name);
HONG 0101 BB 20120214145050
LEE 0201 BB 20120214145053
KANG 0301 BB 20120214145057
WHERE에 조건을 넣은 경우 :
> select a.name, a.birth_day, a.cust_code, b.PARTITION from CUST_G a LEFT OUTER JOIN CUST b ON (a.name = b.name) where a.name = 'LEE';
LEE 0201 BB 20120214145053
ON 절에 조건을 넣은 경우 :
> select a.name, a.birth_day, a.cust_code, b.PARTITION from CUST_G a LEFT OUTER JOIN CUST b ON (a.name = b.name) AND a.name = 'LEE';
HONG 0101 BB
LEE 0201 BB 20120214145053
KANG 0301 BB
굳이 해석해보자면 WHERE에 넣으면 a 테이블에서 일단 고르고 남은 거에다가 조인한 느낌
ON에 넣으면 a에서 조건없이 고른 후에 on에 명시한 조건인것만 join 해주는 느낌
......
SQL의 세계는 상당히 오묘하구나... -_-; 너무 충격받아서 메모해둠.