Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Sql server 确定两个表之间的重复项,并删除创建时间较早的表_Sql Server_Tsql - Fatal编程技术网

Sql server 确定两个表之间的重复项,并删除创建时间较早的表

Sql server 确定两个表之间的重复项,并删除创建时间较早的表,sql-server,tsql,Sql Server,Tsql,我有两张桌子T1和T2。并非两个表上的所有列都相同,但两个表都有Name和Date列 我想检查T1和T2中名称的重复项,但从具有较旧日期的表中删除该条目 例如: T1: T2: 我想从表1中删除A1,从表2中删除A2。我们可以尝试使用两个现有的删除查询: DELETE FROM T1 t1 WHERE EXISTS (SELECT 1 FROM T2 t2 WHERE t1.Name = t2.Name AND t2.Date > t1.Date); 及 Name Date A1

我有两张桌子T1和T2。并非两个表上的所有列都相同,但两个表都有Name和Date列

我想检查T1和T2中名称的重复项,但从具有较旧日期的表中删除该条目

例如: T1:

T2:


我想从表1中删除A1,从表2中删除A2。

我们可以尝试使用两个现有的删除查询:

DELETE
FROM T1 t1
WHERE EXISTS (SELECT 1 FROM T2 t2 WHERE t1.Name = t2.Name AND t2.Date > t1.Date);

Name  Date
A1    2019-07-07
A2    2016-05-05
A4    2015-09-06
DELETE
FROM T1 t1
WHERE EXISTS (SELECT 1 FROM T2 t2 WHERE t1.Name = t2.Name AND t2.Date > t1.Date);
DELETE
FROM T2 t2
WHERE EXISTS (SELECT 1 FROM T1 t1 WHERE t1.Name = t2.Name AND t1.Date > t2.Date);