现在可以轻松地从多个表中添加。
但我正在寻找一种方法来根据其他人的缺乏选择性地从表中删除行。
如果说.. Table_Important
(ID,ImportantValue,其他,东西,没人,关心,关于)
我想删除 ImportantValue 中没有出现的所有行
Table_Remembering in colum CouldBeImportant
也不是
表_忘记列 WasThatImportant
到目前为止,我一直在使用连接来查找它发生的实例,并将它们插入临时表,删除原始文件,重新创建它,然后将临时表复制到其中,并删除它。
它很慢,当然也不是最好的方法。
答案 0 :(得分:0)
听起来像几个exists
运营商:
DELETE
FROM table_important i
WHERE NOT EXISTS (SELECT *
FROM table_remembering r
WHERE i.important_value = r.could_be_important) AND
NOT EXISTS (SELECT *
FROM table_forgetting f
WHERE i.important_value = f.was_that_important)
答案 1 :(得分:0)
由于OP没有公开实际结构,只有一般性提示:
DELETE FROM a WHERE
NOT EXISTS (SELECT b.key FROM b where b.key = a.key)
AND NOT EXISTS (SELECT c.key FROM c where c.key = a.key)