SAKURUG TECHBLOG

サブクエリについて

timestampauthor-name
Koji.T

こんにちは。SQLでのサブクエリについて、簡単なご紹介をさせていただきます。

私は何年もシステム開発の現場でSQLを使用してきましたが、

最近は便利なツールやソフトでSQLを直書きしなくてもよい場合が多かったため

SQLがそんなに詳しくなくても使用することができていました。

ですが、今一度SQLを1から勉強しなおす機会がありまして基本から学んでいたところで、

「サブクエリ」という、私はあまり聞いたことのないワードがあり、初めてサブクエリについて

学んだので、ご存じの方も多いかとは思いますが、自身の勉強も兼ねて、ここでご紹介させていただきます。

サブクエリとは、以下のようなものです。

SELECT カラム1, カラム2, ...
FROM テーブル名
WHERE カラム = (SELECT カラム FROM 他テーブル名 WHERE 条件);

(参照元)https://techplay.jp/column/1841

(サブクエリでのいい点)

ふつう、データの検索などをセレクト文を1つ書くだけでできますが、

このようにwhereの中にもう1つセレクト文を書くことによって、データ抽出の条件をより細かく指定することができます。

(サブクエリでの注意点)

こちらは、まだ私が業務でサブクエリを業務で使用したことがなくて気づかなかったのですが、

調べてみると、以下のようなこともあるようです。

パフォーマンスへの影響

サブクエリは、通常のSQL文よりも処理時間がかかる場合が多いです。
先ほどの例でも、同じカテゴリの製品のレコードが大量にあった場合、それだけで処理が重くなります。

その場合は、適切なインデックスを設定したり、(可能であれば)1つのクエリで実行せず、分割して実行することで結果処理が早まる可能性が高いです。

SQL文の複雑化

サブクエリは複数組み合わせることも可能ですが、ネストさせたSQL文は非常に複雑になりやすく、他者が見た際に理解しづらくなる場合があります。

サブクエリを使う際は、可読性を意識しながら、適切に利用することが重要です。

(参照元)https://techplay.jp/column/1841

SQLを深く学ぶことによって、データの解析やよりデータベースを使いこなすことができるようになると思われますので、SQLをもっと使えるようにしていきたいと思いました。

株式会社SAKURUGのAdvent Calendar 2025です。

会社HP: https://sakurug.co.jp

ーーーーーーーーーー
株式会社SAKURUGは「寄付月間2025」に参画しています。
12月中のテックブログのpv数に応じて、アフリカの支援団体に寄付をおこないます。
https://giving12.jp/
ーーーーーーーーーー

▼高校生向けインターン実施中!

弊社では高校生向けにインターンを行っております!
現役エンジニア指導の下、一緒に働いてみませんか?

高校生インターン応募フォーム

▼カジュアル面談実施中!

カジュアル面談では、会社の雰囲気や仕事内容についてざっくばらんにお話ししています。
履歴書は不要、服装自由、原則オンラインです。興味を持っていただけた方は、
ぜひ以下からお申し込みください。

皆さんにお会いできることをサクラグメンバー一同、心より楽しみにしております!

カジュアル面談応募フォーム

記事をシェアする

ABOUT ME

author-image
Koji.T
中途で入社しました。いままでの経歴はIT業界が半分、あとの半分は運送業界です。フォークリフトすき。特技は汎用機系の開発です。