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