我試圖運行查詢來選擇客戶受衆,但應該選擇之前沒有收到電子郵件的客戶。電子郵件跟蹤來自另一個表。這是原始查詢:SQL查詢在哪裏不同
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
現在,我需要檢查另一個表稱爲跟蹤,看看如果客戶在該表中,如果是已經存在,跳過它。
這是我嘗試過,但似乎並沒有工作:
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
我在做什麼錯?或者有什麼辦法可以做得更好?
增加:我完全忘了一個更重要的因素 - 跟蹤表有「模塊」列,我只需要從「聯繫」模塊的結果。換句話說,我需要過濾掉已經存在於追蹤表中的客戶,但只有與聯繫人模塊關聯,而不是與其他任何模塊關聯。
不要混合使用隱性和顯性連接。 – zerkms