MySQL:删除其id不在另一个查询的结果集中的记录

时间:2013-12-13 17:20:58

标签: mysql

这应该是一件非常简单的事情,但我对(我的)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)。

为什么它不起作用,我需要做些什么来实现我的目标?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一个包含要删除的值的临时表。然后您的删除查询可以基于该临时表。