Sybase IQ 12.7 User Manual

Page of 212
 2 章    テーブルのジョイン
パフォーマンス&チューニング・ガイド
21
相関名
相関名は、テーブルの特定のインスタンスのエイリアスです。このエイリアス
は、
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 の両方が必要です。両方のカラムが一緒になってテーブル
のプライマリ・キーになります。