问题:我有以下两个表。我想删除临时数据中不存在的旧数据行。主键是 id 和场景。我在 postgres 中运行了以下删除左连接,不幸的是没有成功(它删除了整个表):
DELETE
FROM old_data
USING old_data as a
LEFT OUTER JOIN temp_data b ON (b.id = a.id AND b.scenario=a.scenario)
WHERE (b.scenario IS NULL AND a.scenario = 2)
有什么想法可以调整查询吗?
## Old data
Temp data
最佳答案
您不需要左连接:
DELETE FROM old_data od
where not exists (select *
from temp_data td
where td.id = od.id
AND td.scenario = od.scenario) ;
关于database - 删除左连接 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63506222/