CREATE TABLE "ATABLE1"
(
"COLUMN1" VARCHAR2(20 BYTE),
"COLUMN2" VARCHAR2(20 BYTE)
);
CREATE TABLE "ATABLE2"
(
"COLUMN1" VARCHAR2(20 BYTE),
"COLUMN2" VARCHAR2(20 BYTE)
);
Insert into ATABLE1 (COLUMN1,COLUMN2) values ('A','1');
Insert into ATABLE1 (COLUMN1,COLUMN2) values ('B','2');
Insert into ATABLE2 (COLUMN1,COLUMN2) values ('A',null);
Insert into ATABLE2 (COLUMN1,COLUMN2) values ('A','1');
Insert into ATABLE2 (COLUMN1,COLUMN2) values ('A','2');
select ATABLE1.column1, count(ATABLE2.column1)
from ATABLE1 Left OUTER JOIN ATABLE2 on ATABLE1.column1 = atable2.column1
GROUP BY ATABLE1.column1;
Result
COLUMN1 COUNT(ATABLE2.COLUMN1)
-------------------- ----------------------
A 3
B 0
이것은 예상대로 작동합니다. 문제는 항상 ATABLE1의 모든 행을 표시하고 제한을 적용한다는 것입니다.
select ATABLE1.column1, count(ATABLE2.column1)
from ATABLE1 Left OUTER JOIN ATABLE2 on ATABLE1.column1 = atable2.column1
where atable2.column2 = '1'
GROUP BY ATABLE1.column1;
COLUMN1 COUNT(ATABLE2.COLUMN1)
-------------------- ----------------------
A 1
왼쪽 조인으로도 ATABLE1의 모든 열이 표시되지 않는 이유는 무엇입니까? 그것들을 어떻게 보이게 할 수 있습니까?
많은 감사드립니다.
당신이 테스트 오브젝트를 설정에 넣어 가지고 특히 노력을 위해 +1,
—
잭 topanswers.xyz 시도라고
" 왼쪽 조인으로도 ATABLE1의 모든 열 이 표시되지 않는 이유는 무엇 입니까?" - '모든 행'을 말하는 것을 의미 했습니까?
—
잭 topanswers.xyz 시도라고
@JackDouglas 네, 더 이해가 될 것입니다.
—
Aaron