示例我的数据库结构olddb
& newdb
newdb
ID email Name
-----------------------
1 john@yahoo.com John
2 peter@yahoo.com Peter
olddb
ID email
-------------------
1 john@yahoo.com
2 peter@yahoo.com
3 rambo@hello.com
4 super@duper.com
现在我希望将olddb
与newdb
进行比较,并从olddb
中删除newdb
让我知道
DELETE FROM olddb, newdb
USING olddb
INNER JOIN newdb USING(email)
WHERE olddb.email <> newdb.email
答案 0 :(得分:1)
DELETE FROM oldb WHERE olddb.email NOT IN(SELECT email FROM newdb);
可能有其他方法可以做到,但这样可行。
答案 1 :(得分:0)
这将为您提供oldtbl
上不在newtbl
的所有电子邮件的列表:
SELECT *
FROM oldtbl
WHERE id NOT IN (
SELECT id FROM newtbl
)
注意:oldtbl
和newtbl
,因为我发现您的命名方案令人困惑。我们谈论表,而不是数据库。
要删除oldtbl
上的这些行,只需使用SELECT *
更改DELETE
。