A NOT IN()
子查詢可以在這裏使用,因爲MySQL不支持MINUS
。
SELECT
cand_email
FROM tbl_cand_data
WHERE can_email NOT IN (SELECT un_email FROM tbl_unsubscribe)
它也可以用LEFT JOIN
做,尋找在un_email
列空值:
SELECT cand_email
FROM
tbl_cand_data
LEFT JOIN tbl_unsubscribe ON tbl_cand_data.can_email = tbl_unsubscribe.un_email
WHERE tbl_unsubscribe.un_email IS NULL
從一堆UNION
操作中排除,包裹UNION
組()
爲子查詢:
SELECT email FROM (
SELECT cand_email AS email FROM tbl_cand_data
UNION
SELECT emp_email AS email FROM tbl_emp_data
UNION
SELECT email FROM AS email tbl_uptade_list
UNION
SELECT feed_email AS email FROM tbl_feedback
UNION
SELECT admin_email AS email FROM tbl_admin_emails
) email_list
WHERE email NOT IN (SELECT un_email FROM tbl_unsubscribe)
可能重複[在MySQL MINUS?](http://stackoverflow.com/questions/184592/minus-in-mysql) – geoffspear
想在一個問題,指出SQL它在MySQL中是有效的。在SQL中也沒有「MINUS」,但問題是關於MINUS(MySQL不支持下面討論的),這是相當混亂的... – spinkus