Sybase 12.7 Home Theater System User Manual


 
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 の両方が必要です。両方のカラムが一緒になってテーブル
のプライマリ・キーになります。