我的表(表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)