-2

質問がありますが、検索スキルが不足している可能性がありますので、遠慮なくこれを閉じて、質問の重複を指摘してください。

Oracle 11gは、あいまいな左結合をどのように解決しますか?あいまいとは、左結合が結合されたテーブルの2つの行をソーステーブルの1つの行に一致させることを意味します。どの行が参加しますか?それは決定論的ですか?もしそうなら、あいまいさの解決ルールは何ですか?

前もって感謝します!

4

2 に答える 2

2

結合条件が複数の行に一致する場合、それが内部結合または外部結合であるかどうかに関係なく、それらのすべての行が結果セットに存在します。左(外部)結合の場合、一致するものが見つからない場合、そのフィールドはnullになります。

于 2013-03-25T15:09:37.697 に答える
2

あいまいさはありません。基本的に、行は必要に応じて複製されます。

create table a(
  a_id number,
  a_name varchar2(10)
);

create table b(
  b_id number,
  b_name varchar2(10)
);

insert into a (a_id, a_name) values (1, 'A');
insert into a (a_id, a_name) values (2, 'B');
insert into a (a_id, a_name) values (3, 'C');

insert into b (b_id, b_name) values (1, 'X');
insert into b (b_id, b_name) values (1, 'Y');
insert into b (b_id, b_name) values (2, 'Z');

select *
from a
left join b on a.a_id=b.b_id
order by a.a_id, a.a_name, b.b_id, b.b_name
A_ID   A_NAME B_ID   B_NAME
1      A      1      X
1      A      1      Y
2      B      2      Z
3      C      (null) (null)

左結合は、フィルターを使用した一般的な相互結合と考えることができます。

于 2013-03-25T15:21:22.103 に答える