有两张表A,B
A中有字段(A1,A2,A3,A4,A5,A6)
表A中有多条记录,A1为主键
B中有字段(A1,A2,A3,A4)
表B中有多条记录,与表A中主键列相同,为A1现在要实现将表B中的所有记录A2,A3,A4,插入到表A中与表B主键A1相对应的记录中去。在线等,谢谢各位高手!
A中有字段(A1,A2,A3,A4,A5,A6)
表A中有多条记录,A1为主键
B中有字段(A1,A2,A3,A4)
表B中有多条记录,与表A中主键列相同,为A1现在要实现将表B中的所有记录A2,A3,A4,插入到表A中与表B主键A1相对应的记录中去。在线等,谢谢各位高手!
解决方案 »
- 数据select出来的单个字段数据集转换成字符串
- oracle中的加号问题
- 客户端连接oracle为什么无法正常生成SQL-TRACE
- 如何能把Oracle中的数据移到其它数据库如(Sql Server,MySQL)
- 怎样能在Oracle中实现特定用户的表,DBA也不能读取其中的内容
- 在查询表时,我想把表名最后一位是数字的表查询出来
- 在Oracle中表示boolean该用什么类型?
- l2g32003 想申请ORACEL 基础和管理的版主,请大家投票
- oracle PL/Sql查询---获取迟到、早退时间
- oracle (cx_oracle)
- 关于oralce字段 截取的问题
- 求助!一SQL查询
如果遇到有多条B对应同一个A,该如何选择那个B的记录呢。
以下语句只是把max的值做进去了。 你可以根据你的需要自行修改insert into a (A2,A3,A4)=select max(A2),max(A3),max(A4) from b where a.A1=b.A1;
where exists(select 1 from b where a.a1=b.a1)
不好意思,不是insert是update
update a set (A2,A3,A4)=select max(A2),max(A3),max(A4) from b where a.A1=b.A1;
要实现的功能的确是对A表中已有的A2,A3,A4字段值进行更新,而不是新添加插入记录。
表A与表B中A1都是各自表的主键列,记录都具有唯一性。
如果不加这句会把a表所有的记录都更新,没有关联上的a2,a3,a4全部会被置为null
sql code :
update a set (a2,a3,a4)=(select a2,a3,a4 from b where a.a1=b.a1)
where exists(select 1 from b where a.a1=b.a1)
感谢inthirties兄所有关注的朋友们