数据库(update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id))

有t1 和 t2 两个表,表中的数据和字段如下:

 执行 如下SQL语句:

update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id)

执行完毕后,t1 结果如下:

1、 为什么?

   答:1、update tab1 时,是全表更新,因为没有添加where过滤条件

           2、update tab1时,id=3 的数据,计算的结果为NULL

    所以name=NULL

2、如果不想改变 id=3 的数据 ,SQL该怎么写?

 答:

update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id) 

where tab1.id in(select id from tab2)

猜你喜欢

转载自www.cnblogs.com/qiupiaohujie/p/11960103.html
今日推荐