SQL第一歩第24話.相関サブクエリ
6730 ワード
相関サブクエリ
サブクエリの一種で、関連サブクエリと呼ばれます.詳細な定義については、関連サブクエリを参照してください.
1. EXISTS
サブクエリを使用して検索する場合は、データが存在するかどうかを判断する条件を指定できます.
この場合、EXISTS述語を使用できます.
EXISTS述語は、返されたローのみが返されているかどうかをチェックし、値の「真」と「偽」が返されるので、スカラー量子クエリである必要はありません.
sample 551およびsample 552の場合、no=no 2行の値を「あり」に変更しようとすると、EXISTSを使用して条件を満たす行を更新することができる.
UPDATE sample551 SET a="있음" WHERE EXISTS (SELECT * FROM sample552 WHERE no2=no);
2. NOT EXISTS
NOT EXISTSで逆の場合に戻ることもできます.
UPDATE sample551 SET a="없음" WHERE NOT EXISTS (SELECT * FROM sample552 WHERE no2=no);
3.関連サブクエリ
UPDATE sample551 SET a = '있음' WHERE
EXISTS (SELECT * FROM sample552 WHERE no2 = no);
UPDATEコマンド(親)は、クエリ「関連サブクエリ」と呼ばれます.
DELETE FROM sample54 WHERE a = (SELECT a FROM (SELECT MIN(a) AS a FROM sample54) AS x);
3-1. 名前付きテーブル
SELECT * FROM sample552 WHERE no2=no → no2불분명 에러
SELECT * FROM sample552,sample551 WHERE sample552.no2 = sample551.no
また、以下のように使用することもできます.UPDATE sample551 SET a = '있음' WHERE EXISTS (
SELECT * FROM sample552 WHERE sample552.no = sample551.no
);
4. IN
スカラー値間の比較では=演算子を使用しますが、比較セットではINを使用して比較します.
SELECT * FROM sample552 WHERE no2 = no;
SELECT * FROM sample551 WHERE no IN (SELECT no2 FROM sample552);
Reference
この問題について(SQL第一歩第24話.相関サブクエリ), 我々は、より多くの情報をここで見つけました https://velog.io/@donghoim/SQL-첫걸음-24강.-상관-서브쿼리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol