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

結合の例

次のクエリは外部結合です。左と右の外部結合は、もう一方のテーブルに一致するものが見つからない場合に、結合したどちらかのテーブルの値を保持します。左のテーブルと右のテーブルは、構文に一覧表示されている最初と 2 番目のテーブルです。NULL 値は、結果セットの「ギャップ」を埋めるために使われます。

このクエリは、LISTING (左のテーブル) と SALES (右のテーブル) の LISTID 列の値と一致します。結果は、リスティング 2、3、および 5 にセールスがないことを示しています。

Copy
select listing.listid, sum(pricepaid) as price, sum(commission) as comm from listing left outer join sales on sales.listid = listing.listid where listing.listid between 1 and 5 group by 1 order by 1; listid | price | comm --------+--------+-------- 1 | 728.00 | 109.20 2 | | 3 | | 4 | 76.00 | 11.40 5 | 525.00 | 78.75 (5 rows)

次のクエリは、FROM 句の 2 つのサブクエリを内部結合したものです。クエリは、イベント (コンサートとショー) のさまざまなカテゴリに対するチケットの販売数と売れ残り数を検索します。

Copy
select catgroup1, sold, unsold from (select catgroup, sum(qtysold) as sold from category c, event e, sales s where c.catid = e.catid and e.eventid = s.eventid group by catgroup) as a(catgroup1, sold) join (select catgroup, sum(numtickets)-sum(qtysold) as unsold from category c, event e, sales s, listing l where c.catid = e.catid and e.eventid = s.eventid and s.listid = l.listid group by catgroup) as b(catgroup2, unsold) on a.catgroup1 = b.catgroup2 order by 1; catgroup1 | sold | unsold -----------+--------+-------- Concerts | 195444 |1067199 Shows | 149905 | 817736 (2 rows)
これらの FROM 句のサブクエリは、テーブルに関するサブクエリです。複数の列と行が返されることがあります。