在SQL Server中删除具有联接的表

在SQL Server中删除具有联接的表,sql,sql-server,duplicate-removal,multiple-tables,deduplication,Sql,Sql Server,Duplicate Removal,Multiple Tables,Deduplication,我是DBA新手,我的任务是从几个表中删除重复项。我在SQL Server工作。它们都有一个名为LAST_UPD的字段,用于跟踪上次更新。所有表都连接到TABLE1,每个用户都由TABLE1.ALIAS_键标识。连接在下面。我想知道如何清除所有重复的行并保留表2中最新的条目。谢谢你的帮助 FROM dbo.Table1 T1 LEFT JOIN dbo.Table2 T2 ON (T1.PARROW = T2.PARROW) 假设(我可能不正确)上次更新是唯一的,您可以: DELETE

我是DBA新手,我的任务是从几个表中删除重复项。我在SQL Server工作。它们都有一个名为LAST_UPD的字段,用于跟踪上次更新。所有表都连接到TABLE1,每个用户都由TABLE1.ALIAS_键标识。连接在下面。我想知道如何清除所有重复的行并保留表2中最新的条目。谢谢你的帮助

FROM dbo.Table1 T1
LEFT JOIN dbo.Table2 T2
    ON (T1.PARROW = T2.PARROW)
假设(我可能不正确)上次更新是唯一的,您可以:

DELETE FROM dbo.Table2 T2 WHERE T2.LAST_UPD NOT IN
    (SELECT max(LAST_UPD) FROM dbo.Table2 T2 
        LEFT JOIN dbo.Table1 T1 ON (T1.PARROW = T2.PARROW)
        GROUP BY T1.ALIAS_KEY) 

你的假设是正确的。这对我来说应该行得通,谢谢!