多表关联更新的问题

guanzg 2008-03-17 10:32:17
一四个表
表 A
TBID JSMJ
表 B
Ltb Ljsmj
表 C
Rtb Rjsmj
表 D
DWTB XMJ

其中 A.TBID=B.LTB A.TBID=C.RTB A.TBID=D.DWTB
要通过这个关系来更新A.JSMJ,使JSMJ=ljsmj+rjsmj+xmj
这样的更新SQL如何实现?
...全文
134 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanzg 2008-03-17
  • 打赏
  • 举报
回复
我用了以上的方法,只更新了一部份,有些数据并没有更新》
liuyann 2008-03-17
  • 打赏
  • 举报
回复

update ((a inner join b on A.TBID=B.LTB) 
inner join c on A.TBID=C.RTB)
inner join d on A.TBID=D.DWTB
set JSMJ=ljsmj+rjsmj+xmj

== 思想重于技巧 ==
guanzg 2008-03-17
  • 打赏
  • 举报
回复
表的关系是 其中
A.TBID=B.LTB
A.TBID=C.RTB
A.TBID=D.DWTB

要通过这个关系来更新A.JSMJ,使A.JSMJ=B.ljsmj+C.rjsmj+D.xmj
liuyann 2008-03-17
  • 打赏
  • 举报
回复

你tables之间的关系是什么?通过那个字段join ?

然后通过7楼的方法即可
== 思想重于技巧 ==
wwwwb 2008-03-17
  • 打赏
  • 举报
回复
用WHERE 就是INNER JOIN
update ((a inner join b on a.JSMJ=b.Ljsmj)
inner join c on a.JSMJ=c.Rjsmj)
inner join d on a.JSMJ=d.XMJ

set JSMJ=ljsmj+rjsmj+xmj
guanzg 2008-03-17
  • 打赏
  • 举报
回复
我要的是更新操作呀,
liuyann 2008-03-17
  • 打赏
  • 举报
回复

ACCESS ADO访问时是JET-SQL

JET-SQL 参考 (如安装OFFICE选择帮助,则直接访问本机)
C:\Program Files\Common Files\Microsoft Shared\OFFICE11\2052\JETSQL40.CHM

JET-SQL 参考
http://download.csdn.net/source/351771

Access使用的是Jet-SQL。

JET SQL 帮助(jet4 access2000)下载地址
http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=
== 思想重于技巧 ==
liuyann 2008-03-17
  • 打赏
  • 举报
回复

select *
from ((a inner join b on a.JSMJ=b.Ljsmj)
inner join c on a.JSMJ=c.Rjsmj )
inner join d on a.JSMJ=d.XMJ


只是个例子, 你个标之间的关系是什么?通过那个字段join ?
== 思想重于技巧 ==
liuyann 2008-03-17
  • 打赏
  • 举报
回复

select *
from ((a inner join b on a.JSMJ=b.Ljsmj)
inner join c on a.JSMJ=c.Rjsmj )
inner join d on a.JSMJ=d.XMJ

== 思想重于技巧 ==
guanzg 2008-03-17
  • 打赏
  • 举报
回复
我就是要用INNER join 的来做?如何实现
wwwwb 2008-03-17
  • 打赏
  • 举报
回复
update a,b,c set JSMJ=ljsmj+rjsmj+xmj
where
A.TBID=B.LTB and A.TBID=C.RTB and A.TBID=D.DWTB

用INNER JOIN 也可以
guanzg 2008-03-17
  • 打赏
  • 举报
回复
可以了,谢谢各位,马上结帖
supercpu123 2008-03-17
  • 打赏
  • 举报
回复
检查B,C,D各表中是否有NULL 上面的语句里INNER JOIN遇到NULL就无法执行+操作了
WWWWA 2008-03-17
  • 打赏
  • 举报
回复
SQL语句没有问题,检查记录及关联是否正常
liuyann 2008-03-17
  • 打赏
  • 举报
回复

能把自己的问题清晰的告诉别人是件很难的事.

上传MDB文件 www.access911.net/csdn



加入QQ群 19055578 晚19:00 - 24:00在线
== 思想重于技巧 ==
gracexu 2008-03-17
  • 打赏
  • 举报
回复
我觉得你更新一部分很正常啊。
能被更新的A.TBID一定要在B,C,D表都存在。
只要有一个表不存在就不能更新,你再想想你的要求是什么

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧