- 「SELECT+FROM+WHERE」が基本。
- レコード=行。
- 予約語は大文字で、列名やテーブル名は小文字で書こう。
- GROUP BY句
- 構文:「SELECT <列名> FROM <テーブル名> WHERE <条件> GROUP BY <列名>」
- 集計結果を<列名>でグルーピング(重複排除)する。
- 全く同じレコードは一つにまとめられる。
- 「SELECT 列1 列2 … GROUP BY 列2」とかはできるのだろうか?
- できない。
- SELECT 句で指定できるのは、GROUP BY 句で指定した列名のリスト(の一部)か集合関数だけ。
- 全レコードを対象とする場合は、WHERE句不要。
- HAVING句
- 「GROUP BY句と組み合わせて」条件を指定できる。
- WHERE句との違い:
- WHERE句:1行づつ条件判定をする。
- HAVING句:グループ(GROUP BY句で作られたレコード)に対して条件判定をする。
- WHERE句で済むならWHERE句を使いましょう(前もってレコード数を削れる)。
SELECT <列A> FROM <テーブルI>
WHERE <列B> IN
(SELECT <列B> FROM <テーブルJ>
WHERE <列C> IN
(SELECT FROM <列C> FROM <テーブルK>
:
)
)