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はい、それはもっと理にかなっています。
—
アーロン