| 第 2 章 テーブルのジョイン | |
相関名 | 相関名は、テーブルの特定のインスタンスのエイリアスです。このエイリアス |
|
| は、1 つの文中でのみ有効です。相関名を作成するには、テーブル名のすぐ後 | |
| ろに、テーブル名の省略形をキーワード AS で区切って指定します。それ以降 | |
| は、修飾子としてテーブル名の代わりにこの省略形を使用する必要があります。 |
SELECT E.emp_lname, S.id, S.order_date
FROM sales_order AS S, employee AS E
WHERE S.sales_rep = E.emp_id
ORDER BY E.emp_lname
この例では、sales_order テーブルと employee テーブルに対応する S と E と いう 2 つの相関名を作成しています。
注意 テーブル名や相関名が必要になるのは、異なるテーブルに同じ名前のカ ラムがあり、不明確になることを避ける場合だけです。相関名を作成した場合 は、テーブル名の代わりに必ず相関名を使用します。相関名を作成していない 場合は、テーブル名を使用します。
テーブル間の関係
他の種類のジョインを構築するには、あるテーブルの情報が別のテーブルの情 報とどのように関係するかを先に理解する必要があります。
テーブルのプライマリ・キーは、そのテーブル内の各ローを識別します。各 テーブルは、外部キーを使って互いに関連付けられます。
ここでは、プライマリ・キーと外部キーを組み合わせて、複数のテーブルから クエリを構築する方法について説明します。
プライマリ・キーによるローの識別
asiqdemo データベースのすべてのテーブルには、プライマリ・キーが設定さ れています( 各テーブルにプライマリ・キーを定義することをおすすめします )。 プライマリ・キーは、テーブル内のローをユニークに識別する 1 つまたは複数 のカラムです。たとえば、従業員番号は従業員をユニークに識別するため、 emp_id は employee テーブルのプライマリ・キーになります。
sales_order_items テーブルは、2 つのカラムでプライマリ・キーを構成して いるテーブルの例です。注文 ID だけでは、sales_order_items テーブルのロー がユニークに識別されません。注文には複数の項目が含まれる場合があるから です。また、line_id 番号も sales_order_items テーブルのローをユニークに識 別しません。sales_order_items テーブルのローをユニークに識別するには、 注文 ID 名と line_id の両方が必要です。両方のカラムが一緒になってテーブル のプライマリ・キーになります。
パフォーマンス&チューニング・ガイド | 21 |