oracle多表關聯更新推薦方法

2021-10-05 02:17:01 字數 824 閱讀 3479

待更新表 -表名 newtab

name

value

電腦手機

導管資料**表-表名 oldtab

goods

price

電腦$1600

手機$12

導管$1

將oldtab表中的price值更新到newtab的value中去,關聯關係是oldtab.goods=newtab.name

begin

for temp_tab in

(select a.rowid,b.price

from newtab a,oldtab b

where a.name=b.goods

)loop

update newtab set

value

= temp_tab .price where

rowid = temp_tab.rowid;

endloop

;end

;

用常規sql寫法,巢狀查詢,乙個幾萬資料的表,草,更新花了半個多小時,還沒執行完,而這個寫法,媽的1秒不到,所以必須記一下。

常規sql類似如下:

update newtab  a 

set a.

value=(

select b.price from oldtab b where a.name=b.goods)

where exits (

select

1from oldtab c where a.name=c.goods )

;

oracle多表關聯更新

1.首先將其他表的資料抽取到一張臨時表裡面。create table temp dim2 as select t.stdaddr,s.dzbm from demp dim t,dzmlpxz pt s where t.sdaddr s.mc 2.進行分組查詢,看看裡面的記錄是否有重複的。select...

oracle多表關聯更新

oracle的更新語句不通mssql那麼簡單易寫,就算寫出來了,但執行時可能會報 這是由於set 的子查詢查出了多行資料值,oracle規定一對一更新資料,所以提示出錯。要解決這樣必須保證查出來的值一一對應。原理 update語句的原理是先根據where條件查到資料後,如果set中有子查詢,則執行子...

oracle 多表關聯更新語句

在使用資料庫進行更新操作時,我們可能會碰到一種情況,有表a和表b兩張表,需要更新表b中的某個欄位時,需要關聯a b兩表,將a表中的字段值賦值給b,此時執行sql語句如下 update 表a set a.欄位1 select b.欄位1 from 表b where a.欄位2 b.欄位2 where ...