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と支払い平均を検索する。
【例】
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の条件式と同じ。
ONの条件式は、WHEREの条件式と同じ。
何でこんな冗長な表現を許すのか不思議。RDBベンダー間の異なるSQLを無理やり標準化したためか?
INNER JOIN
条件式を満たすレコードを出力
OUTER JOIN
条件式を満たさなくても出力。LEFT JOINは、左側のテーブル行を全て出力する。条件式を満たさない右側のテーブルのカラムはNULLを出力する。RIGHT JOINはLEFT JOINの逆。INSERTするときに外部キーが他テーブルにあることを制約条件にしていない場合に有効。
