我在删除一张表多条重复信息遇到的问题???

删除多余的信息,学生表,多条信息,除了id不一样,其余的字段值都一样。

先根据除id字段外分组得到,唯一id,再根据查询出的id结果,删除表中的其他数据

这条sql可以执行

`DELETE from student where id NOT in (SELECT a.id from (SELECT s.id from student as s GROUP BY sage,sname,ssex) a)

下面这条sql为什么不能执行 ,上面就是把分组结果再查了一次,把id查询出来了

```DELETE from student where id NOT in (SELECT s.id from student as s GROUP BY sage,sname,ssex)


我想问问各位大佬这是什么原理,为什么??求解

SELECT s.id from student as s GROUP BY sage,sname,ssex
这句有问题,包含 groupy by 的语句的 select 后面的字段只能是聚合函数或者是 group by 后的列名称,而这里你的 s.id 显然是不合语法要求的。

因为你不能直接从student表里查询出数据,然后再删除student的数据,所以中间需要再嵌套一个子查询