LoginSignup
1
0

More than 3 years have passed since last update.

SQLのEXISTSについて①

Posted at

前回のANY/SOMEやALLからの流れから、今回はEXISTSについて説明しようと思います。
EXISTSには二種類の使用方法があり、「存在判定」と「相関副問い合わせ」と言われています。
今回は存在判定について説明します。

Code Name
01 田中
02 鈴木
03 中村
04 山崎
Code Score
01 80
02 90

まずは、上記のような二種類のテーブルを用意します。

SQL
SELECT * FROM TABLE1 
WHERE EXISTS (
    SELECT * FROM TABLE2 
    WHERE TABLE2.Code = '02') 
    AND TABLE1.Name = '中村' ;

このとき、カッコの内側のSQLの抽出条件であるTABLE1.Code = '02'のレコードが存在しているので、カッコの外側のSQLも実行されます。
結果は以下の通りです。

Code Name
03 中村

もうひとつ、SQLを実行してみます。
カッコの内側のSQLの抽出条件だけ変更しています。

SQL
SELECT * FROM TABLE1 
WHERE EXISTS (
    SELECT * FROM TABLE2 
    WHERE TABLE2.Code = '03') 
    AND TABLE1.Name = '中村' ;

TABLE2にはCode = '03'に該当するレコードがないため、外側のSQLは実行されません。
このため、もしこのSQLを実行してもなにも抽出されません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0