Navigatorでは、問い合わせ時に2つ以上の結合定義を利用して、データベースでテーブルを結合する時、外部結合([結合先と一致しないレコードを含める]チェックボックスにチェックしている結合)と、内部結合([結合先と一致しないレコードを含める]チェックボックスのチェックを外している結合)が混在している場合、すべての外部結合により、テーブルが結合されます。
そのため、求める問い合わせ結果によっては、条件を指定して、絞り込みを行う必要があります。以下に、例を示します。
スノーフレーク型による結合定義の混在の例
スノーフレーク型の内部結合と外部結合が混在した場合の例を説明します。
以下の図のような(1)の結合定義を行っている場合、(2)の結果を期待する場合と、(3)の結果を期待する場合が考えられますが、実際には、(4)のような(3)相当の結果が出力されます。
(2)の結果を出力したい場合には、メーカ名を条件に指定して絞り込みを行ってください。
なお、問い合わせ結果は、すべて全値型管理ポイントを使用した場合を想定しています。
+:右外部結合(Navigatorでは、結合「元」テーブルが「右」、結合「先」テーブルが「左」に結合されます。)
-:内部結合
():優先する結合定義
スタースキーマ型による結合定義の混在の例
スタースキーマ型の内部結合と外部結合が混在した場合の例を説明します。
以下の図のような(1)の結合定義を行っている場合、(2)または(3)を期待する場合が考えられますが、実際には(4)の結果が出力されます。
そのため、(2)または(3)の結果を出力したい場合には、顧客名を条件に指定して絞り込みを行ってください。
なお、問い合わせ結果は、すべて全値型管理ポイントを使用した場合を想定しています。
+:右外部結合(Navigatorでは、結合「元」テーブルが「右」、結合「先」テーブルが「左」に結合されます。)
-:内部結合
():優先する結合定義