1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | -- 1. 상수조건이 조인조건으로 사용되는 경우 -- 1.1. Oracle : 상수 조건에도 (+) 붙음 SELECT a.* FROM categories a , category_sets b WHERE a.id = b.id(+) AND b.lang(+) = 'US' ; -- 1.2. ANSI : ON 절 SELECT a.* FROM categories a LEFT OUTER JOIN category_sets b ON a.id = b.id AND b.lang = 'US' ; -- 2. 상수조건이 조회조건으로 사용되는 경우 -- 2.1. Oracle : 상수 조건에 (+) 없음 SELECT a.* FROM categories a , category_sets b WHERE a.id = b.id(+) AND b.lang = 'US' ; -- 2.2. ANSI : WHERE 절 SELECT a.* FROM categories a LEFT OUTER JOIN category_sets b ON a.id = b.id WHERE b.lang = 'US' ; -- 2.3. 이 경우 아우터 조인은 의미가 없어지게 됨. 이너조인과 동일하게 동작 SELECT a.* FROM categories a INNER JOIN category_sets b ON a.id = b.id WHERE b.lang = 'US' ; -- 이와 같은 사용은 의도가 불분명한 애매한 사용으로 잘못 사용한 예. -- 이너조인을 사용하던가? ON 절에 조건을 주던가? 둘 중 하나가 맞음. |