今回はEXISTSの「相関副問い合わせ」について説明していきます。
Code | Name |
---|---|
01 | 田中 |
02 | 鈴木 |
03 | 中村 |
04 | 山崎 |
Code | Score |
---|---|
01 | 80 |
02 | 90 |
前回使用したのと同じテーブルを使用します。
SQL
SELECT * FROM TABLE1
WHERE EXISTS (
SELECT 1 FROM TABLE2
WHERE TABLE1.Code = TABLE2.Code)
AND Name like '%中%';
順番としては、カッコの外側のSQLが実行されてから、カッコの内側のSQLが実行されることになります。
つまり、存在判定とは実行される順番が逆になります。
カッコの内側のSQLの中ではカッコの外側のSQLの項目が使用されており、これを行うことで「相関副問い合わせ」となります。
また、上記のSQLを実行した結果は以下の通りになります。
Code | Name |
---|---|
01 | 田中 |
TABLE2にCodeが存在する、かつNameに「中」が含まれるレコードのみが取得されます。
相関副問い合わせは、意外と使うことになる場面が多いので、覚えておくといろいろ便利かもしれません。