SELECT FROM A left outer join B ON A.a = B.a WHERE B.b = '1'
SELECT FROM A left outer join B ON A.a = B.a AND B.b = '1'
이 세쿼리에 동작이 어떠한 차이가 있는지 알고 싶습니다..
by 마농
[2010.05.03 17:07:26]
1번은 오라클 쿼리가 아닌듯 하네요.
2번은 오라클 쿼리로 변경하면
SELECT *
FROM a, b
WHERE a.a = b.a(+)
AND b.b = '1'
이 쿼리는 a를 기준으로 해서 b와의 조인이 성공하지 않아도 a는 무조건 나오고자 하는 의도로 아우터 조인을 했으나,
마지막 조건인 b.b = '1'에 의해 아우터 조인의 의도와 달리 조인에 성공한 자료만 나오게 됩니다.
3번은 오라클 쿼리로 변경하면
SELECT *
FROM a, b
WHERE a.a = b.a(+)
AND b.b(+) = '1'
이 쿼리는 처음 의도대로 아우터 조인이 이루어집니다.
by ^^
[2010.05.03 17:29:54]
1번은..Sybase 문법이네요..
by 김신
[2010.05.03 17:42:09]
LATERAL VIEW 에 관한 내용을 알고자 적으신것 같은데.
혹시 2번과 3번에 B.B1 = '1' 이 부분이 A.B1 = '1' 이 아닌가요?
by 채용근
[2010.05.04 09:58:16]
1번 Sybase 문법 아닙니당~ mssql인듯
by ^^
[2010.05.04 10:32:18]
mssql은 잘 모르겠고..Sybase IQ문법 맞습니다..
by 채용근
[2010.05.04 10:39:43]
햇갈렸네요 Sybase outer도 같네요
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.