存在および非存在のためのサブクエリ
メニューを表示するにはスワイプしてください
1234567SELECT title FROM books b WHERE NOT EXISTS ( SELECT 1 FROM borrowings br WHERE br.book_id = b.book_id );
特定の関連レコードが存在するかどうかを確認する必要がある場合、サブクエリとともに EXISTS および NOT EXISTS 演算子を使用できます。これらの演算子は、テーブル間の関係を確認する際、たとえば一度も貸し出されたことのない本や、貸出履歴のない会員を見つける場合に特に有用です。
上記の例では、NOT EXISTS を使用して、books テーブル内で borrowings テーブルに対応するエントリが存在しないすべての本を検索しています。NOT EXISTS 内のサブクエリは、book_id が外側の books テーブルと一致する貸出レコードがあるかどうかを確認します。そのようなレコードが存在しない場合、その本が結果に含まれます。
EXISTS 演算子も同様に動作しますが、サブクエリが1行でも返す場合に真となります。EXISTS および NOT EXISTS は、このような存在または非存在のチェックによく使用され、特に大規模なデータセットやサブクエリが IN 値を返す可能性がある場合、NOT IN や NULL を使うより効率的なことが多いです。
EXISTS/NOT EXISTS と IN/NOT IN のどちらを選択するかは、具体的なユースケースによります。EXISTS および NOT EXISTS は、関連する行の存在を確認する相関サブクエリで一般的に推奨されます。
1. SQL サブクエリで EXISTS と IN を使用する場合について、次のうち正しい記述はどれですか?
2. NOT EXISTS を使って、一度も貸し出されたことのない本のタイトルを返すクエリの空欄を埋めてください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 14
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 14