zoukankan      html  css  js  c++  java
  • sql语句学习

    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);这样子就可以解决你想要的语句了。

  • 相关阅读:
    Postman教程大全
    Java关键字(一)——instanceof
    RocketMQ(1)-架构原理----通用MQ知识点
    CAP理论的理解
    Buy the Ticket HDU
    高斯消元求多元一次方程(讲解+板子)
    P3709 大爷的字符串题 莫队
    P4074 [WC2013]糖果公园 树上莫队带修改
    java的静态代码块和类变量的隐式覆盖
    SP10707 COT2
  • 原文地址:https://www.cnblogs.com/kobigood/p/4475864.html
Copyright © 2011-2022 走看看