update set join行不通?

Uncle_higo 2013-07-31 04:13:41
UPDATE table1 SET
table1.b=table2.b
FROM
table1 inner join table2
ON table1.a = table2.a;

就是根据table2与table1的有相同值的列为联系,把table2对应的值更新到table1里面去

sqlserver 是可以的,access咋回事,还是我写错了?
...全文
228 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Uncle_higo 2013-08-01
  • 打赏
  • 举报
回复
引用 6 楼 guanchaoyi 的回复:
在ACCESS帮你调试了,写成这样可以运行,并得到你想要的结果: UPDATE table1 AS aa, table2 AS bb SET aa.b = bb.b WHERE (aa.id=bb.id);
这么易贼,疯了 多谢多谢,从乱七八糟的可能找出一条简洁可行的语句是数据库工作者的牛比之处阿
关工 2013-08-01
  • 打赏
  • 举报
回复
在ACCESS帮你调试了,写成这样可以运行,并得到你想要的结果: UPDATE table1 AS aa, table2 AS bb SET aa.b = bb.b WHERE (aa.id=bb.id);
关工 2013-08-01
  • 打赏
  • 举报
回复
引用 8 楼 threshold1980 的回复:
我这种临时抱佛脚,临时用一阵之后可能几年都用不上的最悲惨了
多练练,更健康,不要灰心。
Uncle_higo 2013-08-01
  • 打赏
  • 举报
回复
我这种临时抱佛脚,临时用一阵之后可能几年都用不上的最悲惨了
ACMAIN_CHM 2013-07-31
  • 打赏
  • 举报
回复
并不是所有查询都是可以被更新的。 在ACCESS一个 join后的结果是否能被更新取决于多个条件。 其中之一就是要保证 table1中的主键在JOIN后仍然是唯一的。
Uncle_higo 2013-07-31
  • 打赏
  • 举报
回复
引用 2 楼 guanchaoyi 的回复:
UPDATE table1 SET table1.b=table2.b FROM table1 ,table2 where table1.a = table2.a; 写成这样不行么?
照样报错啊,兄弟
Uncle_higo 2013-07-31
  • 打赏
  • 举报
回复
不是我非这样写 现在有 table1 a b 1 ff 2 dd 3 ee 4 ee 5 gg table2 a b 2 nnnnnnnn 3 vvvvvvvv 4 mmmmmmmm 我要update table1 根据table2 最终得到 table1 a b 1 ff 2 nnnnnnn 3 vvvvvvv 4 mmmmmmm 5 gg 请问怎么写sql语句呢
关工 2013-07-31
  • 打赏
  • 举报
回复
UPDATE table1 SET table1.b=table2.b FROM table1 ,table2 where table1.a = table2.a; 写成这样不行么?
关工 2013-07-31
  • 打赏
  • 举报
回复
何必写得这样呢,不通用呀。数据库不同,解析不同,执行起来就可能报错。 照你的逻辑,如果table2为空,那table1.b怎么更新呢?

7,714

社区成员

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

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