北京霞公府都住什么人:关于SQL Update的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 03:11:31
假设有两个表,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格,我写的语句是Update tab1 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称
结果出现错误,提示为:列前缀 'tab2' 与查询中所用的表名或别名不匹配。请问应该怎样写,谢谢!
changyaono1 的方法不行,提示说”,“附近有语法错误,update后面可以跟两个表名吗?

不能这样写的。
SQL语句是不支持多表同时更新的。

应该这样写

update tab1 set tab1.产品价格 = (select tab2.产品价格 from tab2 where tab2.产品名称 = tab1.产品名称) where tabl1.产品名称 in (select tab2.产品名称 from tab2)

后面的where tab1.产品名称 in (select tab2.产品名称 from tab2) 这句保证了如果tab1的产品在tab2没有记录时不会出错。

应该写where tab1产品价格=tab1产品价格=tab2产品价格

你的写法有错,应该写成这样:
Update tab1,tab2 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称

虽然tab2表没有被更新,而只是取值,但也应该加进去。