Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 删除左连接postgres_Database_Postgresql - Fatal编程技术网

Database 删除左连接postgres

Database 删除左连接postgres,database,postgresql,Database,Postgresql,问题:我有以下两张表。我想删除临时数据中不存在的旧数据行。主键是id和scenario。我在postgres中运行了以下delete-left-join,不幸的是没有成功(它删除了整个表): 你知道如何调整查询吗 ## Old data 您不需要左连接: DELETE FROM old_data od where not exists (select * from temp_data td where td.id =

问题:我有以下两张表。我想删除临时数据中不存在的旧数据行。主键是id和scenario。我在postgres中运行了以下delete-left-join,不幸的是没有成功(它删除了整个表):

你知道如何调整查询吗

## Old data


您不需要左连接:

DELETE FROM old_data od
where not exists (select * 
                  from temp_data td
                  where td.id = od.id 
                    AND td.scenario = od.scenario) ;

谢谢一个后续问题:假设临时数据中只有场景=2的数据可用,我只想从场景=2中删除旧数据中的行,这些行在临时数据中不再存在,而场景=1在旧数据中存在(即在旧数据中保留场景=1的行)。你也知道怎么做吗?
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) ;