1
outer join
쿼리를 시도하는 동안 where
절에서 join
절로 하나의 조건을 변경하면 결과가 변경됩니다. 그게 놀랐지 만 테이블과 쿼리를 아래처럼 간단하게 만들었지 만 이제는 이해할 수 있다고 생각하지만 솔리드 한 설명을 듣고 싶습니다.OUTER JOIN의 조건은 WHERE 조건과 다른 결과를 제공합니다.
create table t0 (id int, b int);
create table t1 (id int, b int);
insert into t0 (id, b) values (1, 10), (2, 10);
insert into t1 (id, b) values (1, 2);
select t0.id, t0.b
from t0
left outer join t1 on
t0.id = t1.id
where
t0.b = 10
and
t1.b = 2
;
id | b
----+----
1 | 10
(1 row)
는 지금은 join
절에 where
의 조건 중 하나를 이동 :
select t0.id, t0.b
from t0
left outer join t1 on
t0.id = t1.id
and
t1.b = 2
where
t0.b = 10
;
id | b
----+----
1 | 10
2 | 10
(2 rows)
당신이 바로 추론을 작성하는 방법을 알고 계십니까?
다른 방법으로 말하자면 외부 조인 된 테이블의 WHERE 조건은 외부 조인을 내부 조인으로 바꿉니다. –