naobe @ ウィキ

SQL

最終更新:

naobe

- view
管理者のみ編集可
RDBに戻る

HAVING節

GROUP BY句によってグループ化されたデータに対し、検索条件を指定し絞り込む。
【例】
SELECT CUSTOMER_ID, AVG(PAY) FROM SALES_ORDER GROUP BY CUSTOMER_ID HAVING AVG(PAY) >= 10000
支払い平均が10000以上のカスタマIDと支払い平均を検索する。

結合

複数のテーブルを関連するカラムをもとに結合して1つのテーブルのように扱うこと。

構文

SELECT カラム1, カラム2, ・・・,カラムN from JOIN構文

JOIN構文

項目 説明 備考
INNER JOIN テーブル1, テーブル2 WHERE 条件式
テーブル1 JOIN テーブル2 WHERE 条件式 上と同じ意味
テーブル1 INNER JOIN テーブル2 JOIN条件式 上と同じ意味
OUTER JOIN テーブル1 LEFT [OUTER] JOIN テーブル2 JOIN条件式
テーブル1 LEFT [OUTER] JOIN テーブル2 WHERE 条件式 上と同じ意味
テーブル1 RIGHT [OUTER] JOIN テーブル2 JOIN条件式
テーブル1 RIGHT [OUTER] JOIN テーブル2 WHERE 条件式 上と同じ意味

JOIN条件式: ON 条件式 | USING(カラム名)

USINGのカラム名は、テーブル1とテーブル2で同じ名前を持つカラム
ONの条件式は、WHEREの条件式と同じ。

何でこんな冗長な表現を許すのか不思議。RDBベンダー間の異なるSQLを無理やり標準化したためか?

INNER JOIN

条件式を満たすレコードを出力

OUTER JOIN

条件式を満たさなくても出力。LEFT JOINは、左側のテーブル行を全て出力する。条件式を満たさない右側のテーブルのカラムはNULLを出力する。RIGHT JOINはLEFT JOINの逆。INSERTするときに外部キーが他テーブルにあることを制約条件にしていない場合に有効。
ウィキ募集バナー