広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 21 / 50
EXISTSで存在するかどうかを調べる
このレッスンでは、EXISTS演算子を使ったデータの存在確認を学び、関連データの有無で効率よく絞り込めるようになることを目標にします。「SQL EXISTS 使い方」で調べている方向けの内容です。
EXISTS(サブクエリ)は、サブクエリの結果が1件でもあればtrueになります。「貸出記録がある本だけ」のように、関連するデータが存在するかどうかで絞り込みたいときに使います。
サンプルコードでは、WHERE EXISTS (SELECT 1 FROM loans l WHERE l.book_id = b.id)という条件で、貸出記録が1件でもある本だけを取得しています。SELECT 1の「1」自体には特に意味がなく、存在するかどうかだけを確認するための慣習的な書き方です。
初心者がよくつまずくのが、EXISTSとINのどちらを使うべきか迷うことです。INと似た使い方ができますが、EXISTSはサブクエリの中身(実際の値)ではなく「1件でも存在するか」だけを見るため、大量データでも高速に動作しやすいという利点があります。
在庫管理や貸出システムのように、「関連するレコードがあるかどうか」で処理を分けたい場面は実務でも非常によくあります。EXISTSを使いこなせると、こうした存在確認のクエリを効率よく書けるようになります。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
関連データがあるかどうかを効率よく調べられるようになります。
関連データがあるかどうかを効率よく調べられるようになります。
広告スペース(バナー)
広告スペース(記事内)