顧客オーディエンスを選択するクエリを実行しようとしていますが、以前に電子メールを受け取ったことのない顧客を選択する必要があります。電子メール追跡は別のテーブルから取得されます。これは元のクエリです。
SELECT
c.customers_firstname,
c.customers_lastname,
o.orders_id,
o.customers_id,
c.customers_email_address
FROM
orders o,
customers c,
order_status s
WHERE
o.customers_id = c.customers_id
AND o.orders_id = s.orders_id
AND o.orders_status = s.orders_status_id
ORDER BY
o.orders_id ASC
ここで、tracking という別のテーブルをチェックして、そのテーブルに顧客が既に存在するかどうかを確認し、存在する場合はスキップする必要があります。
これは私が試したものですが、うまくいかないようです:
SELECT
c.customers_firstname,
c.customers_lastname,
o.orders_id,
o.customers_id,
c.customers_email_address
FROM
orders o,
customers c
INNER JOIN
tracking t
ON
c.customers_id = t.customers_id,
order_status s
WHERE
o.customers_id = c.customers_id
AND o.orders_id = s.orders_id
AND o.orders_status = s.orders_status_id
AND c.customers_id NOT LIKE t.customers_id
ORDER BY
o.orders_id ASC
私は何を間違っていますか?または、これをより良く行う方法はありますか?
追加:もう 1 つの重要な要素を完全に忘れていました。追跡テーブルには「モジュール」列があり、「連絡先」モジュールからの結果のみが必要です。つまり、追跡テーブルに既に存在する顧客を除外する必要がありますが、連絡先モジュールに関連付けられている場合にのみ、他のモジュールには関連付けられていません。