有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
扫描二维码关注公众号,回复:
8019604 查看本文章
所以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)