Mysql - 如果新表中不存在行,则从一个表移动到另一个表

时间:2017-03-19 15:05:57

标签: mysql

如果新表中不存在列,我想将表的行移动到另一个表。 说我想移动登录信息,我检查电子邮件。这将是文本形式:

如果电子邮件与table2中的任何电子邮件行都不匹配,则从table1移动行(如果table2中已存在,则不执行任何操作)。 我目前有这个代码,它不会检查新表中是否存在电子邮件,但我希望能够:

INSERT INTO logins(firstname, lastname, email, departmentid)
SELECT firstname, lastname, email, departmentid FROM temp_uploads WHERE tempuploadid = ?

我必须在select语句中加入两个表吗?或者可以以更好的方式完成?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询:

INSERT INTO logins(firstname, lastname, email, departmentid)
SELECT firstname, lastname, email, departmentid 
FROM temp_uploads 
WHERE tempuploadid = ?
AND NOT EXISTS (
  SELECT * FROM logins WHERE email = temp_uploads.email
);