2016-02-24 3 views
0

Есть ли способ вернуть [email protected], [email protected] and [email protected], используя код SQL?mysqli list emails, если в другой таблице нет его

Список адресов электронной почты, которые существуют в таблице_2, но не существуют в таблице_1. Я могу сделать это с помощью PHP, но должен сделать это, используя только SQL. Я не очень хорошо разбираюсь в MySQL-запросах MySQL.

Table_1 
id | email 
------------ 
1 | [email protected] 
2 | [email protected] 
3 | [email protected] 

Table_2 
id | email 
------------ 
1 | [email protected] 
2 | [email protected] 
3 | [email protected] 
4 | [email protected] 
5 | [email protected] 

ответ

0
select email from Table_in 
where email not in (select email from Table_2); 
+0

Что такое 'Table_in'? И разве у вас нет логики назад? –

1

Вы можете использовать NOT IN;

SELECT email 
FROM Table_2 
WHERE email NOT IN (SELECT email FROM Table_1); 

... или LEFT JOIN ...

SELECT t2.email 
FROM Table_2 t2 
LEFT JOIN Table_1 t1 
    ON t1.email = t2.email 
WHERE t1.id IS NULL 
+0

На самом деле не в небезопасно, поэтому, если таблица 1 пуста, ничего не будет возвращено. – sagi

+0

@sagi http://ideone.com/tn8UyK –

+0

Thats wierd. http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html#function_in – sagi

Смежные вопросы