这应该是一件非常简单的事情,但我对(我的)SQL很新。
基本上,如果customers
表包含属性id, client, etc.
,client
字段不一定是唯一的,我想要消除client
字段重复的行以前的价值。
以下内容:
SELECT MIN(id) FROM customers GROUP BY client
返回我想要的行的唯一ID。我想要其他一切。
我试过
DELETE FROM customers WHERE customer.id NOT IN
(SELECT MAX(id) FROM customers GROUP BY client)
无济于事。 (ERROR 1093 (HY000): You can't specify target table 'customers' for update in FROM clause
)。
为什么它不起作用,我需要做些什么来实现我的目标?
谢谢。
答案 0 :(得分:0)
您可以创建一个包含要删除的值的临时表。然后您的删除查询可以基于该临时表。