2012-03-28 73 views
1

我试图从临时导入表中插入一个新的联系人数组到我们的主要客户数据库。在插入之前,我们首先要检查联系人是否存在于我们的黑名单中。如果它存在,我们不希望将其插入到主表中。mysql插入如果不存在从单独的表

我第一次临时表拉接触:

SELECT `email` FROM `import_contacts` 

然后我想插入那些接触到主表后,才一直“擦洗”或对黑名单进行检查。我有它目前的方式:

INSERT INTO `contacts` (`email`) 
VALUES ('".implode("','','',''),('",$email)."','','','') 
WHERE... 

我弄糊涂了,当它发生,我认为内爆阵列像我有内爆的所有联系人,包括那些上了黑名单。所以即使我要让WHERE声明起作用,也是浪费并且充满了模糊的数据。

是否有插入接触到主表中已经反对使用一个SQL语句黑名单表检查后一种方式?

任何帮助将不胜感激!

回答

5
INSERT INTO `contacts` (`email`) 
SELECT email FROM `import_contacts` 
WHERE `import_contacts.email` NOT_IN(`SELECT email FROM my_blacklist`); 
+0

工作完美非常感谢! – john 2012-03-28 18:12:31

相关问题