Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:删除id不在另一个查询结果集中的记录_Mysql - Fatal编程技术网

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

MySQL:删除id不在另一个查询结果集中的记录,mysql,Mysql,这应该是一件非常简单的事情,但我对MySQL还是相当陌生的 基本上,给定一个具有属性id、client等的customers表,其中client字段不一定是唯一的,我希望消除client字段与先前值重复的行 以下是: SELECT MIN(id) FROM customers GROUP BY client 返回所需行的唯一id。我想把其他的都拿出来 我试过了 DELETE FROM customers WHERE customer.id NOT IN (SELECT MAX(i

这应该是一件非常简单的事情,但我对MySQL还是相当陌生的

基本上,给定一个具有属性id、client等的customers表,其中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)
无济于事。错误1093 HY000:无法在FROM子句中为更新指定目标表“customers”

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


谢谢。

您可以创建一个临时表来保存要删除的值。然后,您的删除查询可以基于该临时表