刪除除了 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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM