删除除了 id 号不同,其他都相同的学生冗余信息

Posted 逸足天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除除了 id 号不同,其他都相同的学生冗余信息相关的知识,希望对你有一定的参考价值。

删除除了 id 号不同,其他都相同的学生冗余信息
2.学生表 如下:
id 号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69

create table student2(id int auto_increment primary key,code varchar(20),name varchar(20));insert into student2 values(null,2005001,张三),(null,2005002,李四),(null,2005001,张三);
//如下语句, mysql 报告错误, 可能删除依赖后面统计语句, 而删除又导致统计语句结果不
一致。
delete from student2 where id not in(select min(id) from student2 group by name);
//但是, 如下语句没有问题:
select * from student2 where id not in(select min(id) from student2 group by name);
//于是, 我想先把分组的结果做成虚表, 然后从虚表中选出结果, 最后再将结果作为删除的
条件数据。
delete from student2 where id not in(select mid from (select min(id) mid
from student2 group by name) as t);
或者:
delete from student2 where id not in
(select min(id) from
(

select * from student2) as t group by t.name);

 

以上是关于删除除了 id 号不同,其他都相同的学生冗余信息的主要内容,如果未能解决你的问题,请参考以下文章

删除数据表中除id外其他字段相同的冗余信息

如何在 MS Access 2003 中删除具有唯一 ID 的重复条目?

如何使用来自两个不同表SQLite的元素更新/删除

课堂练习 找水王

PHP访问数据库复习

6.MySQL数据库结构设计