広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 44 / 50
NOT EXISTSで存在しないデータを探す
このレッスンでは、NOT EXISTSを使った「存在しないデータ」の検索方法を学び、関連レコードがないものを効率よく見つけられるようになることを目標にします。「SQL NOT EXISTS 使い方」で調べている方向けです。
NOT EXISTS(サブクエリ)は、サブクエリの結果が1件もないときにtrueになります。「一度も貸し出されたことのない本」のように、関連するデータが存在しないものだけを探したいときに使います。
サンプルコードでは、WHERE NOT EXISTS (SELECT 1 FROM loans l WHERE l.book_id = b.id)という条件で、貸出記録が1件もない本だけを取得しています。EXISTSのレッスンで学んだ書き方の、ちょうど反対の考え方になっている点を確認してみましょう。
初心者がよくつまずくのが、NOT INとNOT EXISTSの違いです。似たような結果になることもありますが、比較対象にNULLが含まれる場合の挙動が異なるため、注意が必要な場面があります。実務ではNOT EXISTSの方が安全とされることが多いです。
EXISTSの逆の考え方で、「関連する記録が全くない」ものを効率よく見つけられます。在庫管理で「注文履歴のない商品」を洗い出すなど、データのメンテナンス作業でよく活躍する書き方です。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
🎯
ここまでできればゴール達成!
関連データが存在しないものだけを探し出せるようになります。
関連データが存在しないものだけを探し出せるようになります。
広告スペース(バナー)
広告スペース(記事内)