パフォーマンスを向上させるために、クエリを NOT IS 句から左外部結合に変換しようとしています。
以下は完全に機能する私のクエリです
SELECT a.company_code, account_name, legal_name FROM accounts a
WHERE account_id NOT IN (SELECT DISTINCT account_id FROM phone_calls WHERE status = 2 ) AND account_id >10000
ORDER BY legal_name, account_name, account_id
したがって、左結合または同じクエリを実行する何らかのタイプの結合に変更したいと考えています。私はこれを試しましたが、うまくいきません
SELECT a.company_code, a.account_name, a.legal_name, p.phone_call_id
FROM accounts AS a
LEFT JOIN phone_calls AS p ON p.account_id = a.account_id
WHERE a.account_id >= 10000 AND p.status = 2 AND p.phone_call_id IS NULL
ORDER BY a.legal_name, a.account_name, a.account_id
私の 2 番目のクエリは、常に何も返しません。
このクエリを試してみましたが、最初のクエリよりも多くの結果が得られるため、同じではありません
SELECT a.company_code, a.account_name, a.legal_name, p.phone_call_id
FROM accounts AS a
LEFT JOIN phone_calls AS p ON p.account_id = a.account_id AND p.status = 2 AND a.account_id >= 10000
WHERE p.account_id IS NULL
ORDER BY a.legal_name, a.account_name, a.account_id