database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 3054 게시물 읽기
No. 3054
LEFT JOIN 차이점 여쭤봅니다.
작성자
purmir(purmir)
작성일
2011-05-03 10:01ⓒ
2011-05-03 10:27ⓜ
조회수
6,087

1번))))
select 컬럼명1, 컬럼명2
from 테이블명1 A left join 테이블명2 B on ( A.컬럼명3 = B.컬럼명3 and  A.컬럼명4 = B.컬럼명4)


2번)))
select 컬럼명1, 컬럼명2
from
 (select 컬럼명1, 컬럼명2
  from 테이블명1 A left join 테이블명2 B on A.컬럼명3 = B.컬럼명3) A left join on  A.컬럼명4 = B.컬럼명4 


이렇게 1번과 2번 쿼리가 있는데요,, 결과가 rowcount가 다르게 조회됩니다. 

저는 결론적으로 같은 결과가 나올꺼라고 생각했는데 그게 아니어서요,, 

부족한지만 답변 부탁드립니다. 감사합니다. 좋은 하루 되세요 

이 글에 대한 댓글이 총 3건 있습니다.

 어떻게 보면 당연한것 일 수도 있는데 조금만 천천히 생각해보시면 바로 알 수 있습니다

글로서 설명하기보단 먼저 2번의 경우에 서브쿼리인 A와B테이블을 컬럼명3으로 레프트조인을 한 

결과를 먼저 보시고 가상으로 그 결과와 B테이블과 조인을 걸어 보시면 바로 아실수 있을꺼에요..ㅎ

 

JaCkalRedi님이 2011-05-04 17:14에 작성한 댓글입니다. Edit

outer join을 쓸 때는 ON 안과 밖에서 정의되는 condition이 중요합니다. purmir 님께서 생각하시는 것과 같게 하려거든, 1)과 2)의 조건을 동일하게 맞추시면 될 것 같습니다.

그런데, 2)에서 보면,  이미 from ( ... ) 내부에서 left outer join 을 한 결과를 갖고 있으니 from 밖의 ...) A left join .... 이 부분은 특별히 의미가 없어 보이네요.

짝퉁헤리포터(bh1004)님이 2011-05-11 06:30에 작성한 댓글입니다.

Key를 하나를 비교하느냐 두개를 비교하느냐에 따른 검색 결과는 완전히 다르겠지요.

더군다나 Out-Join 이라면 더할태고요.

 

두 학교의 학생들을 먼저 학년별로 나눈 다음 다시 같은 반으로 나누면.. 결국 반끼리 나눈거겠죠.

두 학교의 학생을 학년별, 반별로 나눈다면.. 학년+반별로 나눈거구요.

 

 

 

WITH A(col1, col2) AS
(
  SELECT 'a', 'a' FROM dual UNION ALL
  SELECT 'a', 'b' FROM dual UNION ALL
  SELECT 'a', 'c' FROM dual UNION ALL
  SELECT 'b', 'a' FROM dual UNION ALL
  SELECT 'b', 'b' FROM dual
)
, B(col1, col2) AS
(
  SELECT col2, col1
    FROM A
)
SELECT A.col1
     , A.col2
     , B.col1
     , B.col2
  FROM (
        SELECT A.col1
             , A.col2
             , B.col1 col3
             , B.col2 col4
          FROM A LEFT JOIN B ON A.col1 = B.col1 ) A
       LEFT JOIN B ON A.col2 = B.col2 
--SELECT A.col1
--     , A.col2
--     , B.col1
--     , B.col2
--  FROM A LEFT JOIN B ON A.col1 = B.col1 And A.col2 = B.col2
;
이용운(cloudlyu)님이 2011-09-07 14:55에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3057오류 사항에 대해서 질문 드립니다. [1]
purmir
2011-05-27
5031
3056db2 오류 메시지에 대하여 궁금합니다.
나그네
2011-05-20
5201
3055문자열 증가할수 있나요? [2]
똘똘이
2011-05-09
5548
3054LEFT JOIN 차이점 여쭤봅니다. [3]
purmir
2011-05-03
6087
3052SQLGate for db2 베타버전이 나왔습니다.
임정주
2011-04-25
6279
3051기간 제외 데이터 처리 관련 질문 올립니다. [2]
purmir
2011-04-25
6124
3050table schema 알아내기 [3]
db2 어려
2011-04-18
5999
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다