Oracleは2枚のテーブルのデータを3枚目のテーブルに挿入し、3枚目のテーブルには存在しません.
1239 ワード
1、先に調べてから差し込むので、insert into table 1()values()は使えません.
insert into table 1()select*table 2を使用するには、valuesは使用できません.
2、複数のテーブルなので、検索と挿入の際にどのテーブルを指定する必要がありますか?さもなければ、エラーを報告します.指定された列がぼやけています.
3、三枚の表聯検査では、inner joinなどの接続文法を複数回使うことができます.
まとめ:論理的にはSQLとCodeは基本的に一致していますが、SQLの速度はとても速く、具体的にSQLを実現するには非常に強い論理性が必要ですが、多くのcodeを書く手間が省けます.
insert into table 1()select*table 2を使用するには、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 );