2010-06-26 4 views
0

Я сравниваю два списка адресов электронной почты в mysql - listA и listB (оба из которых представляют собой представления). Первоначально я хотел найти все адреса электронной почты в списке A, которых нет в спискеB. Я успешно выполнил это с:проблема сравнения списка 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"); 

Теперь я хочу, чтобы найти все адреса электронной почты в lišta, которые не 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

USE 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

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); 
Смежные вопросы