1、今天用sqlserver里面的三个表进行关联更新,发现oracle里面的更新语法用不了:提示id无明确,因为三个表里面都有id
如果在更新表前面加个别名 a ,又提示 列名a无效。
2、然后想想换了一个方法:就是把要更新的表放到not exists里面去,但是执行后发现0行被更新,还是有问题。想想是因为我要更新的是关联不到其他两个表的记录,用的not exists,所以不能把要关联的表放进去
3、解决方法:
既然id不明确,那我先关联2个表只获取关联字段取个别名,然后再not exists更新就行了。
用了: ;WITH CTE as
;WITH CTE AS
(SELECT DISTINCT B.VID FROM [dossier10111].[dbo].[FILEtable1] B,[dossier10111].[dbo].[FILEPAGEtable1]
C WHERE B.id=C.FID)
UPDATE [dossier10111].[dbo].[volumntable1] SET qybj=‘2’ WHERE NOT EXISTS(SELECT 1 FROM CTE WHERE ID=VID)