表を結合し、抽出条件を指定する

表を結合してさらに抽出条件を指定することも可能である。そのときは、表の結合条件のあとにANDを使って抽出条件を記述する。

SELECT文における表の結合と抽出条件の記述形式

SELECT 列名1,列名2,〜列名n ← どの列を表示させるか
FROM 表名(テーブル名) ← どの表(テーブル)から
WHERE 表名1.列名 = 表名2.列名 AND 抽出条件

《例題1》

売上明細と商品表から、売上Noが1の売上No、商品名、単価、数量と単価*数量を表示する。

売上明細と商品表
SELECT文

SELECT 売上No,商品名,単価,数量, 単価*数量
FROM 商品表, 売上明細
WHERE 商品表.商品CD=売上明細.商品CD AND 売上No=1

商品表の商品CDと売上明細の商品CDが一致する行で表を結合する。かつ売上Noが1であるものを抽出する

− 実行結果 −

実行結果

商品表の商品CDと売上明細の商品CDが一致すする行で表を結し、売上Noが1であるものが抽出されている。

なお、計算式はSELECT句だけではなくWHERE句に記述することができるので、抽出条件にすることができる。

《例題2》

売上明細と商品表から、単価*数量が5000以上の売上No、商品名、単価、数量と単価*数量を表示する。

SELECT文

SELECT 売上No,商品名,単価,数量, 単価*数量
FROM 商品表, 売上明細
WHERE 商品表.商品CD=売上明細.商品CD AND 単価*数量>=5000

商品表の商品CDと売上明細の商品CDが一致する行で表を結合する。かつ単価*数量が5000以上のものを抽出する。

− 実行結果 −

実行結果

商品表の商品CDと売上明細の商品CDが一致する行で表を結する。かつ単価*数量が5000以上のものが抽出されている。