ltjz 发表于 2008-01-14 11:30

这个update怎么写?

infromix 有二个表tab1 tab2

tab1(a1,a2,a3)   a1,a2相组成唯一索引

tab2(a1,a2,a3,a4....)

当tab2中的a1,a2与tab1中的a1,a2同时满足时更改tab2中的a3为tab1中的a3

这个sql怎么写?

liaosnet 发表于 2008-01-14 13:21

update table tab2
set tab2.a3=tab1.a3 where tab2.a1=tab1.a1 and tab2.a2=tab1.a2;

ltjz 发表于 2008-01-14 13:44

这样的写法执行的时候会出错:
522:table (tab1) not selected in query

liaosnet 发表于 2008-01-14 14:11

原帖由 ltjz 于 2008-1-14 13:44 发表 http://bbs.chinaunix.net/images/common/back.gif
这样的写法执行的时候会出错:
522:table (tab1) not selected in query

哦.对.............

update table tab2--去掉这个table
set tab2.a3=tab1.a3 where
exists
( select tab2.a1,tab2.a2 from tab2,tab1
   where tab2.a1=tab1.a1 and tab2.a2=tab1.a2)
;

[ 本帖最后由 liaosnet 于 2008-1-14 15:40 编辑 ]

ltjz 发表于 2008-01-14 14:56

还是不能执行???
update {table} tab2???
上面的正确吗?

xxyyy 发表于 2008-01-14 15:12

有两种写法:
update tab2 from tab1
set tab2.a3=tab1.a3 where tab2.a1=tab1.a1 and tab2.a2=tab1.a2;
或者
update tab2 set tab2.a3 = ( select tab1.a3 from tab1 wheretab2.a1=tab1.a1 and tab2.a2=tab1.a2);

ltjz 发表于 2008-01-14 16:03

OK,可以了
谢谢!
页: [1]
查看完整版本: 这个update怎么写?