sqlserver/oracle update set from 寫法

a表 b表 結構分別 id ,name , id,memo

b表的memo需要對照a表  關鍵ID相同就可以更新,語句如下

update b

set memo = a.name
from a,b
where a.id = b.id  
這個就是隻更新from內的結果集,等效於下面的sql:
update b set memo=(select max(a.name) from a where a.id=b.id)
where exists(select 1   from a where a.id=b.id);
實際上這兩條語句都需要name和id是一一對應的,id是主碼。

Oracle中是不支持update:From這樣的句子的,ms-sql支持的,所以還是少用這種東西的好,不至於以後在兩種數據庫中犯迷糊。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章