SQL応用 (JOIN/GROUP BY/サブクエリ)

複雑な検索のためのSQLを学びます。

JOIN・GROUP BY・サブクエリは実務で必須の SQL テクニック。試験でも頻出です。

日野 こむぎ(普段) 日野 こむぎ

複数テーブルからデータを取り出すには?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

JOINを使うのよ。
複数のテーブルを結合して、関連するデータを取得できるの。

青木 澪(普段) 青木 澪

主な JOIN は4種類: 内部結合 (INNER JOIN) は両テーブルに該当するもののみ。
左外部結合 (LEFT JOIN) は左テーブル全件 + 一致した右テーブル。
RIGHT JOIN は逆。
FULL JOIN は両方全件。

桃井 すみれ(普段) 桃井 すみれ

GROUP BYは集計ですかぁ?

青木 澪(普段) 青木 澪

GROUP BYは指定列でグループ化して集計するの。
例: SELECT category, COUNT(*) FROM products GROUP BY category; で各カテゴリの商品数が出る。

藤森 さやか 先生(普段) 藤森 さやか 先生

集計関数は集約関数: COUNT (件数)・SUM (合計)・AVG (平均)・MAX/MIN (最大/最小)。
集計後の絞り込みは HAVING 句を使うわ。

青木 澪(普段) 青木 澪

サブクエリは SELECT 文の中で別の SELECT 文を実行する仕組み。
WHERE 句や FROM 句で使うわ。

日野 こむぎ(笑い) 日野 こむぎ

複雑な検索もSQLでできるんだね!

確認クイズ

GROUP BYで集計した結果を絞り込むときに使う SQL の句はどれか。

  1. WHERE
  2. HAVING
  3. ORDER BY
  4. JOIN
こたえを見る

正解: 2. HAVING

HAVING は GROUP BY で集計した後の結果を絞り込みます。WHERE は集計前のレコードを絞り込むため、集計結果には使えません (例: HAVING SUM(price) > 1000)。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。