想象一下,你有两张桌子。
表格栏:
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| name | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
表 foo:
+------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| name_alternative | varchar(255) | YES | | NULL | |
+------------------+--------------+------+-----+---------+-------+
并且您想从表中删除与表中的字段bar
具有相同name
值的行name_alternative
foo
我可以使用以下查询:
DELETE FROM foo WHERE name IN (SELECT name_alternative FROM bar);
但这需要很长时间才能在两个表中执行大量记录。
所以我想知道这个查询是否有更好的选择。