プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【SQL Server(連載)】SELECT文 (存在チェック) -9-

www.pon-x.jp

前回の続き

前回は、サブクエリを勉強しました。
今回は、サブクエリを使って、他のテーブルにデータが存在するかという確認をもって、抽出条件を決める方法を紹介します。

EXISTS

EXISTSは、データが存在するかを確認するものです。
ちなみに、データが存在しないかを確認する場合は、NOT EXISTSを用いればよいということになります。

では、早速やってみようというまえに外部結合の回をおもいだしてください、

www.pon-x.jp

ここで、こんなSQLをかきました。

SELECT * 
FROM Person.Person PP
    LEFT JOIN Sales.PersonCreditCard PC
        ON  PP.BusinessEntityID = PC.BusinessEntityID
WHERE PC.BusinessEntityID IS NULL

これの出力が854件でしたね。

これについて、EXISTSを使って同様の出力を得ることができます。

SELECT * 
FROM Person.Person PP
WHERE 
    NOT EXISTS(
        SELECT * 
        FROM Sales.PersonCreditCard PC 
        WHERE PP.BusinessEntityID = PC.BusinessEntityID
        )

出力は以下の通り。
f:id:hanabusa-snow:20201124085336p:plain
854件ですね。







以上、今回はここまで。