我的表(表1和表2)上有大量数据,所以我问这个简单的问题,因为我想拥有最有效的方法来做到这一点:

如何删除表1中的所有条目,这些条目也在表2中(由属性“ atribxy”标识)。因此,表1和表2中将只有排他条目。如何使用SQL查询以最有效的方式实现此目的?

最佳答案

有很多方法可以做到这一点:

使用JOIN

DELETE table2
FROM  table2
INNER JOIN  table1 ON table1.atribxy = table2.atribxy


使用IN

DELETE FROM table2 WHERE atribxy IN (SELECT atribxy FROM table1)


使用EXIST

DELETE FROM table2 t2 WHERE EXISTS ( SELECT 1 FROM table1 t1 WHERE t1.atribxy = t2.atribxy)

07-26 03:12