学籍管理里关于新生老生的一个问题
2013-05-30 19:02
225 查看
学籍管理里关于新生老生的一个问题:
比如我有两张表:
1. 学生个人信息表actif,记录的是学生的年龄、性别什么的。
2. 学籍管理表inscription,学生第一次注册那他就是新生,这个表里有个字段ins_type专门用来记录这个情况,记录为0。同一个学生第二次来注册,那么他就是老生了,记录为1。
道理挺简单的,如果是新的插入,只要在插入前,探测一下这个学生是否注册过就知道他是新生老生了。但问题是,inscription里已经有大堆的记录,如何使用sql语句一次性找出和修改之前的学籍注册情况?只要能够实现这个目的,使用辅助表,或者增加字段,或者使用几句SQL分开写什么的都可以。
准确答案:
参考答案:
不要额外的ins_type列,一个查询解决:
select (select coun(*) from inscription t1 where t1.学生编码 = t.学生编码) as 新老标识,t.* from actif
在插入时候的可使用特殊语句:
replace .... 在MYSQL官方免费手册中看一下它的例子和说明。
insert into .. on duplicate ...
这句很快,1秒完成:
update inscription,actif set ins_naissance=act_datenaissance where act_id=ins_actif
这句奇慢,19分钟完成:
update inscription_pan,actif_pan set ins_naissance=act_datenaissance where (act_id=ins_actif) and (act_ecole=ins_ecole)
比如我有两张表:
1. 学生个人信息表actif,记录的是学生的年龄、性别什么的。
2. 学籍管理表inscription,学生第一次注册那他就是新生,这个表里有个字段ins_type专门用来记录这个情况,记录为0。同一个学生第二次来注册,那么他就是老生了,记录为1。
道理挺简单的,如果是新的插入,只要在插入前,探测一下这个学生是否注册过就知道他是新生老生了。但问题是,inscription里已经有大堆的记录,如何使用sql语句一次性找出和修改之前的学籍注册情况?只要能够实现这个目的,使用辅助表,或者增加字段,或者使用几句SQL分开写什么的都可以。
准确答案:
create temporary table t1 as select min(id) as pk from 学籍管理表 group by student_id update 学籍管理表 set ins_type=0 where id in (select pk from t1) update 学籍管理表 set ins_type=1 where id not in (select pk from t1)
参考答案:
不要额外的ins_type列,一个查询解决:
select (select coun(*) from inscription t1 where t1.学生编码 = t.学生编码) as 新老标识,t.* from actif
在插入时候的可使用特殊语句:
replace .... 在MYSQL官方免费手册中看一下它的例子和说明。
insert into .. on duplicate ...
这句很快,1秒完成:
update inscription,actif set ins_naissance=act_datenaissance where act_id=ins_actif
这句奇慢,19分钟完成:
update inscription_pan,actif_pan set ins_naissance=act_datenaissance where (act_id=ins_actif) and (act_ecole=ins_ecole)
相关文章推荐
- 心情不错, 中午的时候解决了一个纠结了10天的问题(关于联系人管理的)
- 关于C#学籍管理项目控制台的问题
- 请教一个关于UE编辑器ftp账号管理的设置问题
- 一个关于项目管理的问题
- spring-boot中关于Maven依赖管理的一个问题
- 测试管理_关于面试中最后的一个问题
- 一个关于远程注册并管理的问题
- 关于Web程序打开Word、Excel后,不能关闭的问题的一个解决办法
- 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题【转】
- 另外一个小问题 关于QT+ECLIPSE
- 一个广为流传的关于项目管理的通俗讲解
- 碰到的一个关于GregorianCalendar类的问题
- jquery easyui 在子tab页中打开新tab页(关于easyUI在子页面增加显示tabs的一个问题)
- 关于一个统计个数的查询问题
- 关于手机端显示页面一个像素的边框变粗的问题
- 关于Objective-C 对象release操作的一个小问题探讨
- PHP关于时区设置的一个问题的解决
- 关于前台开源JS控件管理问题求指导
- 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题
- 关于虚继承和析构函数的一个奇怪的问题