我正在比较 mysql 中的两个电子邮件地址列表 - listA 和 listB(两者都是 View )。最初,我想查找 listA 中不在 listB 中的所有电子邮件地址。我成功地做到了这一点:
$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 或异常(exception)表中的所有电子邮件地址。我尝试这样做:
$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");
但是,这不起作用。谁能看出我哪里出了问题吗?
谢谢!
最佳答案
使用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");
关于mysql列表与查询逻辑的比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123109/