ZKX's LAB

update不能更新两张表 update后可接两张表吗,

2020-09-30知识10

SQL Update 能同时更新多张表吗 如果两个表有关联的话是可以的,比如A表的id和b表的b_id外键关系就可以update a left join b on a.id=b.b_id set a.name='',b.name=''(where条件)

update不能更新两张表 update后可接两张表吗,

update 两个表关联 更新 update table1 a set a.c=(select b.b from table2 b where a.a=b.a)另外,如果在a.a=b.a的情况下,如果b.b有多个值的话也会报错这个时候,你可以考虑用b.b的最大值或最小值update table1 a set a.c=(select max(b.b)from table2 b where a.a=b.a)

update不能更新两张表 update后可接两张表吗,

SQL Update 能同时更新多张表吗 不可以一个update语句,只能同时更新 一个表中一个或者多个字段,一行或者多行数据

update不能更新两张表 update后可接两张表吗,

update 更新语句关联两张表为什么加exists oracle吧,sqlserver支持update from的语法比如:update a set a.value=b.data from b where a.id=b.id可以看出,其实a和b做了一次内连接;而oracle不支持update from的语法,那再来看看oracle的写法:update a set a.value=(select b.data from b where a.id=b.id)where exists(select 1 from b where a.id=b.id)或者用in:update a set a.value=(select b.data from b where a.id=b.id)where a.id in(select b.id from b)如果我们把exists或者in的部分去掉:update a set a.value=(select b.data from b where a.id=b.id)再来点数据:a表:id value1 'abc'2 'def'b表:id data1 '123'3 '456'那么我们用不带exists和in的update(update a set a.value=(select b.data from b where a.id=b.id))会怎样?A表:id value1 '123'2 null这不会是你要的吧?所以:如果使用关联表进行更新,并且其它表和被更新的表也要关联时(此处埋伏了一个条件未讲可以自己思考试验),则需要带上exists或in的条件。

#oracle数据库#select#exists#oracle#update

随机阅读

qrcode
访问手机版