この単純なスキーマを考えると:
create table A(pk int primary key, R1 int, R2 int);
create table B(pk int primary key);
次のクエリを実行し、以下に示すように OR を使用して結合するとどうなりますか?
select *
from A
join B
on A.R1 = B.pk or A.R2 = B.pk
次のケースに興味があります。
R1 と R2 の両方が B の異なる PK を指している行が存在する場合はどうなりますか? 結合の結果、複数のレコードが作成されますか? それとも、デフォルトで or の左側に設定され、A.R1 = B.pk と一致しますか?
PS: 私はタブレットでコードを読んでいて、それをテストするための DB を持っていないので、自分で実行するように言わないでください :) グーグルで試しましたが、正確な状況が見つかりませんでした。