メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

FROM 句

クエリ内の FROM 句は、データの選択下のテーブル参照 (テーブル、ビュー、サブクエリ) を一覧表示します。複数のテーブル参照が一覧表示されている場合、FROM 句または WHERE 句のいずれかの適切な構文を使って、テーブル参照を結合する必要があります。結合基準を指定していない場合、クエリはクロス結合 (デカルト積) として処理されます。

構文

Copy
FROM table_reference [, ...]

ここで table_reference は、次のいずれかになります。

Copy
with_subquery_table_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ] ( subquery ) [ AS ] alias [ ( column_alias [, ...] ) ] table_reference [ NATURAL ] join_type table_reference [ ON join_condition | USING ( join_column [, ...] ) ]

Parameters

with_subquery_table_name

WITH 句 のサブクエリで定義されるテーブル。

table_name

テーブルまたはビューの名前。

alias

テーブルまたはビューの一時的な代替名。エイリアスは、サブクエリから生成されたテーブルに対して提供する必要があります。他のテーブル参照では、エイリアスはオプションです。AS キーワードは常にオプションです。テーブルエイリアスは、WHERE 句など、クエリの別の部分のテーブルを識別するため、便利なショートカットを提供します。(例:

Copy
select * from sales s, listing l where s.listid=l.listid
column_alias

テーブルまたはビュー内の列に対する一時的な代替名。

subquery

テーブルに対して評価を実行するクエリ式。テーブルは、クエリの有効期間中のみ存在し、通常は名前つまりエイリアスが与えられます。ただし、エイリアスは必須ではありません。また、サブクエリから生成されたテーブルに対して、列名を定義することもできます。サブクエリの結果を他のテーブルに結合する場合、および列をクエリ内のどこかで選択または拘束する場合、列のエイリアスの命名は重要です。

サブクエリには ORDER BY 句が含まれることがありますが、LIMIT または OFFSET 句も併せて指定しない場合、この句には効力がありません。

NATURAL

2 つのテーブル内で同じ名前を付けられた列のペアをすべて結合列として、自動的に使用する結合を定義します。明示的な結合条件は必要ありません。例えば、CATEGORY と EVENT の両方のテーブルに CATID という名前の列が存在する場合、これらのテーブルの NATURAL 結合は CATID 列による結合です。

注記

NATURAL 結合を指定しても、結合対象のテーブルに同じ名前の列ペアが存在しない場合、クエリはデフォルト設定のクロス結合になります。

join_type

以下のいずれかの結合タイプを指定します。

  • [INNER] JOIN

  • LEFT [OUTER] JOIN

  • RIGHT [OUTER] JOIN

  • FULL [OUTER] JOIN

  • CROSS JOIN

ON join_condition

結合列を ON キーワードに続く条件として記述する、結合タイプの指定。(例:

Copy
sales join listing on sales.listid=listing.listid and sales.eventid=listing.eventid
USING ( join_column [, ...] )

結合列をカッコで一覧表示する結合の指定タイプ。複数の結合列を指定する場合、カンマによって区切ります。USING キーワードは、リストより前に指定する必要があります。(例:

Copy
sales join listing using (listid,eventid)

結合の種類

クロス結合は非限定の結合で、2 つの表のデカルト積を返します。

内部結合と外部結合は限定結合です。これらの結合は、FROM 句の ON または USING 構文、または WHERE 句条件を使った (Natural 結合での) 黙示的な結合です。

内部結合は、結合条件、また結合列のリストに基づいて、一致する行だけを返します。外部結合は、同等の内部結合が返すすべての行に加え、「左側の」表、「右側の」表、または両方の表から一致しない行を返します。左の表は最初に一覧表示された表で、右の表は 2 番目に一覧表示された表です。一致しない行には、出力列のギャップを埋めるため、NULL が含まれます。

使用に関する注意事項

列を結合するには、データ型に互換性がなければなりません。

NATURAL または USING 結合は、中間結果セットの結合列の各ペアの一方だけを保持します。

ON 構文を使った結合は、中間結果セットの両方の結合列を保持します。

WITH 句」も参照してください。