update多个关联表的SQL写法

zjin0919 2012-07-19 04:45:32
update a  set  a.Femployee= b.代码    from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.Femployee= b.代码 and a.fitemid= c.fsupid


我这样写数据改不了 哪里错了啊?
3个表的修改我不会 。。。。。。。
...全文
444 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjin0919 2012-07-20
  • 打赏
  • 举报
回复
Cannot insert the value NULL into column 'Femployee', table 'restore_20120601.dbo.t_Supplier'; column does not allow nulls. UPDATE fails.

The statement has been terminated.
百年树人 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
引用 13 楼 的回复:
员工号和代码是什么关系?

相同类型的 员工号是全部的
b.代码是其中一部分
[/Quote]

还是没说清楚三个表之间是怎么关联的,最好把你的表结果列出来,并且说明怎么关联,如何更新
zjin0919 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
员工号和代码是什么关系?
[/Quote]
相同类型的 员工号是全部的
b.代码是其中一部分
百年树人 2012-07-19
  • 打赏
  • 举报
回复
员工号和代码是什么关系?
zjin0919 2012-07-19
  • 打赏
  • 举报
回复
我顶啊 大家吃完饭没啊?
zjin0919 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
update a set a.Femployee= b.代码 from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.Femployee= b.代码 and a.fitemid= c.fsupid


你条件就限定了a.Femployee= b.代码 然后又update a set a.Femployee= b.代码 有用么?
[/Quote]

我的结果就是改表a 中 员工号 要 =表B的员工号,条件 是表a的fitemid=表C的fsupid(单号一样)
关系是 A表的Femployee=表B的代码(员工号一样)

我怎么弄?

update a set a.Femployee= b.代码 from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.fitemid= c.fsupid


也弄不出来啊
zjin0919 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
update a set a.Femployee= b.代码 from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.Femployee= b.代码 and a.fitemid= c.fsupid


你条件就限定了a.Femployee= b.代码 然后又update a set a.Femployee= b.代码 有用么?
[/Quote]

我的结果就是改表a 中 员工号 要 =表B的员工号,条件 是表a的fitemid=表C的fsupid(单号一样)
关系是 A表的Femployee=表B的代码(员工号一样)

我怎么弄?

update a set a.Femployee= b.代码 from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.fitemid= c.fsupid


也弄不出来啊
quchen520 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

update a set a.Femployee= b.代码 from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.Femployee= b.代码 and a.fitemid= c.fsupid


你条件就限定了a.Femployee= b.代码 然后又update a set a.Femployee= b.代码 ……
[/Quote]+1
没有意义的写法
唐诗三百首 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 3 楼 的回复:
先确认这样能查到数据吗.

SQL code

select a.Femployee,
b.代码,
a.fitemid,
c.fsupid,
a.Femployee,
b.代码
from t_Supplier a, dbo.ag$ b, t_supplyentry c
where a.Femployee=……

找不到
[/Quote]
先确保有找到数据,update时才会有更新.
songguangqin 2012-07-19
  • 打赏
  • 举报
回复

[Quote=引用 5 楼 的回复:]

引用 3 楼 的回复:
先确认这样能查到数据吗.

SQL code

select a.Femployee,
b.代码,
a.fitemid,
c.fsupid,
a.Femployee,
b.代码
from t_Supplier a, dbo.ag$ b, t_supplyentry c
where a.Femployee=……

找不到
[/Quote]
那就是你的条件本身有问题,你可以吧表结构及其他们的关系发上来
SQL77 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 3 楼 的回复:
先确认这样能查到数据吗.

SQL code

select a.Femployee,
b.代码,
a.fitemid,
c.fsupid,
a.Femployee,
b.代码
from t_Supplier a, dbo.ag$ b, t_supplyentry c
where a.Femployee=……

找不到
[/Quote]
找不到说明条件有误了。不过你的语句写的逻辑感觉就不对了。相同的条件更新相同的栏位。
zjin0919 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
先确认这样能查到数据吗.

SQL code

select a.Femployee,
b.代码,
a.fitemid,
c.fsupid,
a.Femployee,
b.代码
from t_Supplier a, dbo.ag$ b, t_supplyentry c
where a.Femployee=……
[/Quote]
找不到
SQL77 2012-07-19
  • 打赏
  • 举报
回复
update a set a.Femployee= b.代码 from t_Supplier a ,dbo.ag$ b ,t_supplyentry c
where a.Femployee= b.代码 and a.fitemid= c.fsupid


你条件就限定了a.Femployee= b.代码 然后又update a set a.Femployee= b.代码 有用么?
唐诗三百首 2012-07-19
  • 打赏
  • 举报
回复
先确认这样能查到数据吗.

select a.Femployee,
b.代码,
a.fitemid,
c.fsupid,
a.Femployee,
b.代码
from t_Supplier a, dbo.ag$ b, t_supplyentry c
where a.Femployee=b.代码 and a.fitemid=c.fsupid
百年树人 2012-07-19
  • 打赏
  • 举报
回复
dbo.ag$ 是一个表还是?
SQL77 2012-07-19
  • 打赏
  • 举报
回复
没错。。看你条件写错了没。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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