ホームページ >データベース >mysql チュートリアル >「SELECT * WHERE NOT EXISTS」を使用して欠落したデータを正しく取得する方法は?

「SELECT * WHERE NOT EXISTS」を使用して欠落したデータを正しく取得する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-26 15:34:10836ブラウズ

How to Correctly Retrieve Missing Data Using `SELECT * WHERE NOT EXISTS`?

「SELECT * WHERE NOT EXISTS」を使用して欠落データを取得する

問題:

特定のセルが別のテーブルに存在しないテーブルからデータを取得する場合、ユーザーは次のように実装しました。クエリ:

SELECT * from employees WHERE NOT EXISTS (SELECT name FROM eotm_dyn)

ただし、既知の欠落データにもかかわらず、このクエリは結果を返しません。

解決策:

この問題に対処するには、は、employeeID などの共通キーに基づいて 2 つのテーブルを結合するために必要です。 2 番目のテーブルにデータが含まれている場合、結合なしで NOT EXISTS を使用すると、常に結果が得られません。

employeeID が結合キーであると仮定した場合の正しいクエリは次のとおりです。

SELECT  *
FROM    employees e
WHERE   NOT EXISTS
        (
        SELECT  null 
        FROM    eotm_dyn d
        WHERE   d.employeeID = e.id
        )

あるいは、非効率的なアプローチは、LEFT JOIN を使用して NULL 値を除外することです。

以上が「SELECT * WHERE NOT EXISTS」を使用して欠落したデータを正しく取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。