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

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

Patricia Arquette
リリース: 2024-11-26 15:34:10
オリジナル
779 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート