从另一个数据库中aa<> aa的表中删除

时间:2014-09-05 09:59:29

标签: sql oracle

我遇到了一些SQL请求的麻烦。

我有2个数据库,具有相同的表(结构,不是内容)

我想删除database1中的所有行,因为它们的两个字段与database2中的字段不对应。

例如: d1.table.field1!= d2.table.field1和d1.table.field2!= d2.table.field2 - >删除此行 否则,不要。

现在,这是我的实际(不工作)代码:

DELETE
FROM table
WHERE table.field1 NOT IN (SELECT table.field1 FROM table@database2)
AND table.field2 NOT IN (SELECT table.field2 FROM table@database2)

1 个答案:

答案 0 :(得分:0)

我认为问题在于您从不同的行匹配field1field2。如果想法是两个字段必须来自同一行,这应该有效:

DELETE FROM table
WHERE NOT EXISTS (
    SELECT *
    FROM table@database2 tt
    WHERE tt.field1=table.field1 AND tt.field2=table.field2
)

SELECTNOT EXISTS的条件可确保field1, field2对必须属于database2表中的同一行。