2 つの異なるシステム用に構築された 2 つのテーブルがあります。1 つのテーブル (「リード」と呼ばれる) に顧客を表すレコードがあり、別のテーブル (「マネージャー」と呼ばれる) にはまったく同じ顧客であるが「マネージャー」が異なるフィールドを使用するレコードがあります。
(たとえば、「リード」には電子メール アドレスが含まれ、「マネージャー」には 2 つの異なる電子メール用の 2 つのフィールドが含まれます。どちらも「リード」からの電子メールである可能性があります)。
そこで、lead_id と manager_id を含む相関テーブルを作成しました。現在、この相関テーブルは空です。
「リード」テーブルにクエリを実行して、「マネージャー」メール フィールドと単一の「リード」メール フィールドのいずれかに一致するレコードを取得しようとしていますが、同時に「相関」テーブルに既に追加されているフィールドは無視します. (このようにして、一致するリードがまだ関連付けられていないリードの数を確認できます。) これが私の現在の無効な SQL 試行です。
SELECT leads.id, manager.id
FROM leads, manager
LEFT OUTER JOIN correlation ON correlation.lead_id = leads.id
WHERE correlation.id IS NULL
AND leads.project != "someproject"
AND (manager.orig_email = leads.email OR manager.dest_email = leads.email)
AND leads.created BETWEEN '1999-01-01 00:00:00' AND '2010-05-10 23:59:59'
ORDER BY leads.created ASC;
エラーが表示されます: 'on 句' の列 'leads.id' が不明です
不思議に思う前に、「leads」テーブルには、leads.project != "someproject" と lead.created がこれらの日付の間にあるレコードがあります。完全を期すために、これらの追加パラメーターを含めました。