我有一个SQL数据库,它接受工作流中的项目,然后在它们移动到下一个位置时添加它们的新记录(我知道,设计非常糟糕……我没有成功)。但是举个例子:
ID |作业|位置
1|福特|付费
2|福特|已发货
3|福特|已交付
4|道奇|已订购
5|雪佛兰|已订购
因此,在这个例子中,我想搜索位置为“已交付”的任何记录,这是福特将匹配的记录,然后删除作业为福特但位置不是“已交付”的所有其他记录。
此数据库中有超过93,000条记录,这取决于它的设置方式。因此,我正在努力清理它,希望能加快以前的员工为我现在工作的公司编写的自定义应用程序的速度。
发布于 2016-01-09 01:21:12
您可以使用多表DELETE语法来执行自联接:
DELETE a
FROM myTable a JOIN myTable b USING (job)
WHERE b.location = 'delivered'
AND a.location != 'delivered'https://stackoverflow.com/questions/34682523
复制相似问题