次の方法で共有


方法 : 外部結合を作成する

既定では、クエリおよびビュー デザイナーはテーブル間で内部結合を作成します。結合テーブルに一致しないデータ行を結果セットに含める場合は、外部結合を作成します。

外部結合を作成するときは、SQL ステートメントでのテーブルの表示順序 (SQL ペインに反映される) が重要です。最初に追加したテーブルは "左" テーブルに、次に追加したテーブルが "右" テーブルになります。ダイアグラム ペインに実際に表示されるテーブルの順序は重要ではありません。左外部結合または右外部結合とは、クエリにテーブルを追加した順序、および SQL ペインの SQL ステートメントでテーブルが表示される順序を示します。

[!メモ]

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

外部結合を作成するには

  1. 結合を自動または手動で作成します。詳細については、「方法 : テーブルを自動的に結合する」または「方法 : テーブルを手動で結合する」を参照してください。

  2. ダイアグラム ペインで結合線を選択し、[クエリ デザイナー] メニューの [<tablename> からすべての行を選択] をクリックして、結合する行が含まれるテーブルを結合するコマンドを実行します。

    • 左外部結合を作成するには、最初のテーブルを選択します。

    • 右外部結合を作成するには、2 番目のテーブルを選択します。

    • 完全外部結合を作成するには、両方のテーブルを選択します。

      [!メモ]

      Oracle など、完全外部結合をサポートしていないデータベースもあります。

外部結合を指定すると、結合線が外部結合を示す線に変更されます。

さらに、SQL ペインの SQL ステートメントが変更され、次のステートメントのように結合の種類の変更が反映されます。

SELECT employee.job_id, employee.emp_id,
   employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON 
    employee.job_id = jobs.job_id

外部結合には不一致行が含まれるため、外部結合を使用して、外部キー制約に違反する行を見つけることができます。そのためには、外部結合を作成し、最も右のテーブルの主キー列から NULL の行を検索する検索条件を追加します。たとえば、次の外部結合は、jobs テーブルに対応する行のない employee テーブルの行を検索します。

SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs 
   ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)

参照

関連項目

[結合] ダイアログ ボックス

その他の技術情報

結合を使用したクエリ