次の方法で共有


外部結合を作成する (Visual Database Tools)

適用対象:SQL Server

既定では、 クエリ およびビュー デザイナー ツール (Visual Database Tools) によってテーブル間の内部結合が作成されます。 内部結合により、他のテーブルの行と一致しない行が削除されます。 ただし、外部結合は、 FROM 句で説明されているテーブルまたはビューの少なくとも 1 つからすべての行を返します。ただし、それらの行が WHERE または HAVING の検索条件を満たしている限りです。 結合されたテーブルに一致しないデータ行を結果セットに含める場合は、外部結合を作成できます。

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

外部結合を作成する

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

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

    • 左外部結合を作成するには、最初のテーブルを選択します。
    • 右外部結合を作成するには、2 番目のテーブルを選択します。
    • 両方のテーブルを選択して、完全外部結合を作成します。

外部結合を指定すると、クエリおよびビュー デザイナーによって結合行が変更され、外部結合が示されます。

さらに、クエリおよびビュー デザイナーは、次のステートメントに示すように、結合の種類の変更を反映するように 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);