查询:
DELETE FROM orders WHERE sales_id IN (
SELECT sales_id FROM orders GROUP BY sales_id HAVING COUNT(*) > 1
);
有错误:
错误代码:1093。您无法在 FROM 子句中指定要更新的目标表“orders”
。
如何解决这个问题?请帮忙。
最佳答案
在 MySQL 中,您无法修改在 SELECT 部分中使用的同一个表。 此行为记录在:http://dev.mysql.com/doc/refman/5.6/en/update.html
您将需要停止使用嵌套子查询并分两部分执行操作,或者使用简单的 where 子句。
如果您想使用子查询,可以尝试为子查询中的表提供别名,如下所示:
DELETE FROM orders WHERE sales_id IN (
SELECT sales_id FROM (
SELECT * FROM orders
) AS t1 GROUP BY sales_id HAVING COUNT(*) > 1
);
关于mysql - mysql删除重复行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32848537/