我有两个表computers
和softwareinstalls
。
计算机主键是computerid,softwareinstalls有三个字段(installid,computerid和lastmodifieddate)。
软件安装与computers.computerid连接的computerid。
我正在尝试删除计算机上所有软件安装程序,这些计算机的最后修改日期超过该计算机最大值的1天,所以......
软件安装表
install computerid lastmodifieddate
1 1 01-16-13
2 1 01-16-13
3 1 01-14-13
4 2 01-12-13
5 2 01-10-13
会删除记录3和5.什么是sql server中的查询?
答案 0 :(得分:1)
您可以加入删除语句。在此使用LEFT JOIN
。
DELETE a
FROM softwareinstalls a
LEFT JOIN
(
SELECT computerID, max(lastmodifieddate) max_date
FROM softwareinstalls
GROUP BY computerID
) b ON a.computerID = b.computerID AND
a.lastmodifieddate = b.max_date
WHERE b.computerID IS NULL
为了获得更好的效果,请在列computerID
和lastmodifieddate
上添加索引。