2010-06-26 19 views
0

我比較mysql-listA和listB(這兩個都是視圖)中的兩個電子郵件地址列表。最初,我想查找listA中不在listB中的所有電子郵件地址。我成功地做到了這一點與:查詢邏輯mysql列表比較問題

$comparison_query = mysql_query("SELECT DISTINCT email_addresses FROM listA WHERE email_addresses NOT IN (SELECT DISTINCT email_addresses FROM listB) ORDER BY email_addresses"); 

現在,我想找到所有listA的不在數組listB或異常表中的電子郵件地址。我試圖這樣做:

$comparison_query = mysql_query("SELECT email_addresses FROM listA WHERE email_addresses NOT IN (SELECT DISTINCT email_addresses FROM ((SELECT email_addresses FROM listB) UNION (SELECT email_addresses FROM exception))) ORDER BY email_addresses"); 

但是,這是行不通的。任何人都可以看到我要去哪裏嗎?

謝謝!

回答

1

使用AND代替UNION

mysql_query("SELECT email_addresses FROM listA 
     WHERE email_addresses NOT IN 
     (SELECT DISTINCT email_addresses FROM listB) AND 
     email_addresses NOT IN 
     (SELECT DISTINCT email_addresses FROM exception)) 
     ORDER BY email_addresses"); 
+0

該訣竅我,感謝您的幫助! – littleK 2010-06-26 08:00:22

1

我覺得這樣的事情應該做的伎倆:

SELECT email_addresses FROM listA 
WHERE email_addresses NOT IN 
(SELECT DISTINCT email_addresses FROM FROM listB) 
AND email_addresses NOT IN 
(SELECT email_addresses FROM exception);