酷!學園

技術討論區 => database 討論版 => 主題作者是: nicklin 於 2003-06-22 06:52

主題: [問題]inner join And View
作者: nicklin2003-06-22 06:52
請問各位資料庫高手,在oracle裡,可以inner join 一個 view嗎?還是一定得是有實體的table才可以作inner join,因為小弟我想要view裡的一個數值作計算然後更新table A裡的一個位置,我之前有想說用這樣的:
update A set xx=(select yy from view where code=1) * 2.5 where code=1
不過這樣的話,只有更新code=1的那個record,而我想要一次全部更新耶……怎麼辦咧……還是有其它方法呢……我是希望全部的過程能在資料庫裡完成……請賜教囉……3q3q
主題: [問題]inner join And View
作者: twu22003-06-22 11:03
可以. 但是要小心, 注意一下 plan 看看, 會不會造成效能比較不好...

update a table_a set
xx = (select view_b.yy from view view_b where view_b.code = table_a.code)
主題: [問題]我的問題點……
作者: nicklin2003-06-22 12:34
謝謝啦,不過,這樣好像沒有作到inner join耶,我也不知道它的可能性……就是說把它作成inner join 之後再作update,這樣我就能全部一次更新了,不用說如果我有十個code就得寫十行的update……不知道有沒有人看得懂我的意思… :( ,拜託各位高手囉…
主題: [問題]inner join And View
作者: twu22003-06-22 12:41
你確定跑過上面的 sql 嗎 ?
上面的指令對於 table_a 的每一筆資料都會做異動.

當然, 你必須確定 view_b 中的每一個對應於 table_a.code 的資料只會有一筆才可以.
主題: 3q 3q
作者: nicklin2003-06-22 12:46
歹勢啦,小弟看錯了啦,多謝多謝,可以跑了