2010-06-26 54 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);