外部結合、右外部結合および完全外部結合リターンを残したレコードの数を見つけることは可能ですか?左手側のテーブルと右手側のテーブルと一致するレコードのレコード数を考えると、外部結合、右外部結合および完全外部結合リターンを残したレコードの数を見つける
私はそれらの間の関係船を相関させようとしています。私はサンプルデータを入力する2つのテーブルを試しました。彼らの間に関係船を得ることができませんでした。 左手側のテーブルの一致しないエントリの数を知っているかどうか。その番号を一致するレコードに追加して、左の外部結合出力を取得します。私が右手側の不一致のレコードの数を知っている場合、そのレコードをそのレコードに追加します。右の外部結合出力が得られます。
不一致のレコードを知らなくても可能ですか?外部結合、外部外部結合、完全外部結合の戻り値を残したレコードの数を見つけることはできますか?
CREATE table table1(
id integer,
name varchar(40)
);
CREATE table table2(
id integer,
name varchar(40)
);
insert into table1(id,name)values(1,'ABC');
insert into table1(id,name)values(2,'DEF');
insert into table1(id,name)values(3,'GHI');
insert into table1(id,name)values(4,'JKL');
insert into table1(id,name)values(5,'JKL');
insert into table1(id,name)values(6,'JKL');
insert into table2(id,name)values(2,'ABC');
insert into table2(id,name)values(2,'ABC');
insert into table2(id,name)values(1,'ABC');
insert into table2(id,name)values(1,'ABC');
insert into table2(id,name)values(3,'ABC');
insert into table2(id,name)values(3,'ABC');
insert into table2(id,name)values(4,'ABC');
insert into table2(id,name)values(4,'ABC');
insert into table2(id,name)values(5,'ABC');
insert into table2(id,name)values(5,'ABC');
insert into table2(id,name)values(11,'ABC');
insert into table2(id,name)values(12,'ABC');
insert into table2(id,name)values(13,'ABC');
insert into table2(id,name)values(14,'ABC');
select count(*) from table1;//6
select count(*) from table2; //14
select count(*) from table1 inner join table2
on table1.id=table2.id; //10
select count(*) from table1 left outer join table2
on table1.id=table2.id;//11
select count(*) from table1 right outer join table2
on table1.id=table2.id;//14
select count(*) from table1 full outer join table2
on table1.id=table2.id;//15
//Unmatched records`enter code here`
select count(*) from table1 left outer join table2
on table1.id=table2.id
where table2.id is null;//1
select count(*) from table1 right outer join table2
on table1.id=table2.id
where table1.id is null;//4
これは、単一のクエリまたは3つの異なるクエリで必要ですか? –
私はその質問を理解していません。異なる結合タイプを使用して取得できるレコードの数を示しています。また、一致のないレコードをカウントする方法も示しています。それであなたはまだ何を探していますか? –
これらの番号を取得する唯一の方法は、JOINクエリを実行することです。 FULL JOINを実行して3つすべてを一度に取得します。 – Serg