sql语句学习
2015-05-04 12:18
155 查看
1.首先创建表 create table test1 (id int, student_id int,name varchar(20),class_no int,class_name varchar(20),fenshu int);
2.添加数据:INSERT INTO `test1`(`id`, `student_id`, `name`, `class_no`, `class_name`, `fenshu`) VALUES
(1,2005001 ,'张三', 1, '语文', 81),
(2,2005002 ,'李四', 1, '语文', 81),
(3,2005001 ,'张三', 1, '语文', 81),
(4,2005001 ,'张三', 1, '语文', 81);
添加表,表信息如下:
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 1 语文 81
2 2005002 李四 1 语文 81
3 2005001 张三 1 语文 81
4 2005001 张三 1 语文 81
问题:删除除自动编号不同,其他都相同的学生冗余信息
首先我们分析一下问题,只有自动编号不同的,删除其他都相同的数据。
delete from test1 where id not in (select id from test1 group by `student_id`, `name`, `class_no`, `class_name`, `fenshu` ); 我想好多人会想到这个办法,可是我们会发现运行不起来总是报错:#1093 - You can't specify target table 'test1' for update in FROM clause
我们就发现有问题,那我们这么修改呢?
修改:delete from test1 where id not in (select bid from (select id as bid from test1 group by `student_id`, `name`, `class_no`, `class_name`, `fenshu` ) as a);这样子就可以解决你想要的语句了。
2.添加数据:INSERT INTO `test1`(`id`, `student_id`, `name`, `class_no`, `class_name`, `fenshu`) VALUES
(1,2005001 ,'张三', 1, '语文', 81),
(2,2005002 ,'李四', 1, '语文', 81),
(3,2005001 ,'张三', 1, '语文', 81),
(4,2005001 ,'张三', 1, '语文', 81);
添加表,表信息如下:
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 1 语文 81
2 2005002 李四 1 语文 81
3 2005001 张三 1 语文 81
4 2005001 张三 1 语文 81
问题:删除除自动编号不同,其他都相同的学生冗余信息
首先我们分析一下问题,只有自动编号不同的,删除其他都相同的数据。
delete from test1 where id not in (select id from test1 group by `student_id`, `name`, `class_no`, `class_name`, `fenshu` ); 我想好多人会想到这个办法,可是我们会发现运行不起来总是报错:#1093 - You can't specify target table 'test1' for update in FROM clause
我们就发现有问题,那我们这么修改呢?
修改:delete from test1 where id not in (select bid from (select id as bid from test1 group by `student_id`, `name`, `class_no`, `class_name`, `fenshu` ) as a);这样子就可以解决你想要的语句了。
相关文章推荐
- 【搬家】【数据库】【优化】SQL 优化学习小结——索引和语句优化
- SQL语句学习(不断更新中。。。。。。)
- Oracle sql语句学习
- SQL 特殊语句(学习笔记)
- mysql数据库 sql语句学习笔记1 建库,建表,改表
- SQL学习笔记——SQL中的数据查询语句汇总
- mysql学习(九)sql语句
- SQL语句学习之路3
- SQL语句学习手册实例版
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
- 学习数据库必须掌握的54条SQL查询语句
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
- oracle 11g SQL语句补充学习
- T--sql语句的学习
- Oracle sql语句学习笔记
- phpcms2007中sql语句学习
- SQL语句学习积累·数据的操作
- SQL基本语句学习