結合でのテーブル
複数のテーブルのデータを結合するときは、使用するテーブルを指定する必要があります。次の事項について考慮する必要があります。
3 つ以上のテーブルを結合する 各 JOIN 演算では 2 つのテーブルを結合します。ただし、1 つのクエリの中で複数の JOIN 演算を使って、任意の数のテーブルからのデータを組み合わせることができます。各 JOIN 演算の結果は実際にはテーブルなので、その結果を以降の結合演算のオペランドとして使用できます。たとえば、書名、著者、著者の印税の掛け率が各行に格納された結果セットを作成するには、authors、titles、および titleauthor という 3 つのテーブルのデータを組み合わせる必要があります。結果の SQL ステートメントは次のようになります。
SELECT title, au_fname, au_lname, royaltyper FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id
他のテーブルを結合するためだけにテーブルを使用する いずれの列も結果セットで使用しないテーブルでも、結合に含むことができます。たとえば、書名とその書籍を販売している店名の組が各行に格納されている結果セットを作成するには、2 つのテーブル titles と stores の列を使用します。ただし、3 番目のテーブル sales を使って、どの店がどの本を売っているのかを特定する必要があります。結果の SQL ステートメントは次のようになります。
SELECT title, stor_name FROM titles INNER JOIN sales ON titles.title_id = sales.title_id INNER JOIN stores ON sales.stor_id = stores.stor_id
sales テーブルは結果セットの列では使用されません。
1 つのクエリの中で同じテーブルを 2 回使用する 1 つのクエリの中で同じテーブルを複数回使用できます。詳細については、「1 つのクエリにおける同一テーブルの複数回使用」を参照してください。
テーブル以外の要素を使用する テーブルの代わりに、クエリ、ビュー、またはテーブルを返すユーザー定義関数を使用できます。詳細については、「方法 : テーブル以外のアイテムを使用してクエリを作成する」を参照してください。
テーブルをクエリに追加する方法の詳細については、「方法 : クエリにテーブルを追加する」を参照してください。