我有一个SQL数据库,它接收工作流中的项目,然后在它们移动到下一个位置时添加它们的新记录(非常糟糕的设计,我知道......我没有成功)。但是例如:
ID |工作| LOCATION
1 |福特|计费
2 |福特|运
3 |福特|递送
4 |道奇|有序
5 |雪佛兰|有序
因此,对于这个例子,我想搜索LOCATION被“交付”的任何记录,福特会匹配,然后删除所有其他记录,其中JOB是福特但LOCATION没有“交付”。
此数据库中有超过93,000条记录,因为它的设置方式。所以我试图清除它,希望能加快以前员工为我现在工作的公司所写的自定义应用程序。
答案 0 :(得分:0)
您可以使用多表DELETE
语法来执行自联接:
DELETE a
FROM myTable a JOIN myTable b USING (job)
WHERE b.location = 'delivered'
AND a.location != 'delivered'