两个表用Where子句关联,然后更新为何出错

两个表用Where子句关联,然后更新为何出错,第1张

两个表用Where子句关联,然后更新为何出错,第2张

问题:

1。两个表与Where子句相关联,然后被更新。为什么是错的?

更新a集合a.fb=b.fb其中a.fa=b.fa

2。有两个表,billlist和B_see。将B_see中的值写入billlist。

我删除了前缀,也报告了一个错误。SQL语句如下所示

更新清单集清单。ProdNewprice=B_see.a,billList。ProdnewMoney=B_see.b,billList。ProdDiscount=B_see.c

从账单列表,B _见

比尔利斯在哪?Id=B_see。身份

回答:

当其他大中型数据库开发人员转而使用jet db 4访问时,经常会出现这个问题。

不允许在access中使用where tablea . field a = tableb . field a来连接update。这是T-sql的语法。你第一次教T-sql的时候,你的老师不是应该说过这个语句的要点吗?

t-sql的语法必须转换成Asni语法,而且要通过join来完成。

更新a.fa = b.fa集合a.fb = b.fb上的一个内连接b;

问题:

为了实现这个目标,如何修改下面的update语句

更新usertabb094 t1,(select field_3,sum(field_9)作为field_91,sum(field_10)作为field _ 101 from user tabb 095 group by field _ 3)T2 set t1 . field _ 8 =(t1 . field _ 8 * t1 . field _ 7+T2 . field _ 101)/(t1 . field _ 7+T2 . field _ 91)其中t1.field_1=t2.field_3

上面的语句表明:

操作必须使用可更新的查询。

回答:

必须分成两个查询才能运行。

1、从usertabb095 group by field_3中选择field_3,sum(field_9)作为field_91,sum(field_10)作为field_101进入[095]

注意:使用嵌套查询会导致你提到的问题,但是使用临时表没问题。

2、将usertabb094更新为t1.field_1=[095]上的t1内部联接095。field_3设置t1 . field _ 8 =(t1 . field _ 8 * t1 . field _ 7+[095]。field_101)/(t1.field_7+[095]。field _ 91);

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 两个表用Where子句关联,然后更新为何出错

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情