Oracle将两张表的数据插入第三张表且第三张表中不存在

2019/7/21 14:44:07 人评论 次浏览 分类:学习教程

1、由于是先查再插所以不能使用insert into table1() values(),

要使用insert into table1() select * table2,不能使用values。

2、因为是多张表故查询和插入的时候需要指定是哪张表,否则会报错:指定列模糊。

3、三张表联查时可多次使用inner join等连接语法。

总结:在逻辑上SQL与Code实现基本一致,但是SQL的速度非常快,在具体实现上SQL需要非常强的逻辑性但是会省去很多写code的功夫。

insert into SPC_RAW                (DATA_INDEX,PARAMETER,VALUE,EQP,CHAMBER,UPDATE_TIME)                select t2.RUNINDEX ,t2.IndicatorName ,t2.value,t1.EQPID,t1.UNITID, t1.DateTime                from RUN_LIST  t1 ,indicator_data  t2                where not exists                (select SPC_RAW.DATA_INDEX,SPC_RAW.PARAMETER,SPC_RAW.VALUE,SPC_RAW.EQP,SPC_RAW.CHAMBER,SPC_RAW.UPDATE_TIME               from SPC_RAW                inner join indicator_data on SPC_RAW.DATA_INDEX=indicator_data.RUNINDEX                and SPC_RAW.PARAMETER=indicator_data.IndicatorName                 and SPC_RAW.VALUE=indicator_data.value                inner join RUN_LIST on SPC_RAW.EQP=RUN_LIST.EQPID                and SPC_RAW.CHAMBER=RUN_LIST.UNITID                and SPC_RAW.UPDATE_TIME=RUN_LIST.DateTime ); 

  

上一篇:3. IP:网际协议

下一篇:关于Udacity

相关资讯

    暂无相关的资讯...

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->