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

Mysql-如果新表中不存在行,则从一个表移动到另一个表,mysql,Mysql,如果新表中不存在列,我想将表中的行移动到另一个表中。 假设我想移动登录信息,并检查电子邮件。文本形式如下: 如果电子邮件与表2中的任何电子邮件行不匹配,则从表1中移动该行(如果该行已存在于表2中,则不执行任何操作)。 我目前有此代码,它不会检查新表中是否存在电子邮件,但我希望能够: INSERT INTO logins(firstname, lastname, email, departmentid) SELECT firstname, lastname, email, departmentid

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

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

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

我必须在select语句中联接两个表吗?或者可以用更好的方法来完成吗?

您可以尝试以下查询:

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
);