学生表TB1
SID STU_NAME 两个字段
1 张三
2 李四
3 王五
4 赵柳
5 孙七
SID是主键唯一 STU_NAME是学生名 学生班级关系表TB2STU_SID STU_NAME CLASS_NAME 三个字段
1 张三 一年一班
2 李四 一年一班
3 王五 一年二班
4 赵柳 一年三班
5 孙七 一年三班 没有主键STU_SID跟TB1中SID关联STU_NAME 是学生名 跟TB1是一样的
CLASS_NAME 就是班级名
这两个表信息就这样现在想要把TB2(关系表拆分开,也可以说去掉)
新建个表CLASS_INFO(先叫它TB3)
班级信息表TB3
CLASS_ID CLASS_NAME
1 一年一班
2 一年二班
3 一年三班学生表TB1 加个字段 CLASS_ID 也就是TB3的主键
SID STU_NAME CLASS_ID
表数据我就不写了原始数据要怎么导入?而且新建的TB3中士TB2中剔除CLASS_NAME 字段重复 就是说 在TB3中CLASS_NAME也是唯一的在线等 谢谢
SID STU_NAME 两个字段
1 张三
2 李四
3 王五
4 赵柳
5 孙七
SID是主键唯一 STU_NAME是学生名 学生班级关系表TB2STU_SID STU_NAME CLASS_NAME 三个字段
1 张三 一年一班
2 李四 一年一班
3 王五 一年二班
4 赵柳 一年三班
5 孙七 一年三班 没有主键STU_SID跟TB1中SID关联STU_NAME 是学生名 跟TB1是一样的
CLASS_NAME 就是班级名
这两个表信息就这样现在想要把TB2(关系表拆分开,也可以说去掉)
新建个表CLASS_INFO(先叫它TB3)
班级信息表TB3
CLASS_ID CLASS_NAME
1 一年一班
2 一年二班
3 一年三班学生表TB1 加个字段 CLASS_ID 也就是TB3的主键
SID STU_NAME CLASS_ID
表数据我就不写了原始数据要怎么导入?而且新建的TB3中士TB2中剔除CLASS_NAME 字段重复 就是说 在TB3中CLASS_NAME也是唯一的在线等 谢谢
解决方案 »
- 关于sql语句的拼接!!!!在线等!!!
- 关于建分区索引的问题哦 如果分区很多怎么办?
- oracle 如何实现各字段的类加,具全例子如下:
- 登录ORACLE时遇到的问题:NO Listener!高手进
- oracle数据导入问题
- 多表合并问题
- 如何在 ORACLE PORTAL 中使HTML页 后退按钮 点击后转向自己需要的页面地址---急!!!
- 问树型结构的查询语句
- 请问如何在存储过程中删除一个表啊? 急``~
- 请问:插入Oraclr8i数据库DATE类型字段的正确格式是什么?
- 每次电脑重起ORACLE都要alter database open(大家告诉我怎么解决啊)
- 这个存储过程怎么写(更新多条记录)
ALTER TABLE TB1 ADD(class_id NUMNER)
我最后执行
update tb1 set class_id=(select class_id from CLASS_INFO, tb2 where CLASS_INFO.class_name=tb2.class_name and tb2.SID=tb1.sid);这个语句的时候 怎么报这个错误
如下
single-row subquery returns more than one row
先查看一下CLASS_INFO这个表,class_id看有没有重复的
对,rownum不会有重复,不过有一点就是 1 一年一班
2 一年二班
3 一年三班
rownum不一定按照上面这个顺序来,可能一年二班是1,一年一班是2
我试验过,出现下面的情况:
ROWNUM CLASS
---------- --------------------
1 一年一班
2 一年四班
3 一年三班
4 一年二班
5 二年一班
select CLASS_INFO.id, tb1.sid from CLASS_INFO, tb2 where CLASS_INFO.class_name=tb2.class_name and tb2.SID=tb1.sid group by CLASS_INFO.id, tb1.sid having count(1) > 1;查查这个sql有没有结果。
就可以
请问这样会不会影响什么??
是那些数据有1条以上的结果返回,也许你的TB2表,有重复记录。
万分感谢!!