关于update的问题

zhang1554481180 2014-09-04 11:57:39
update A set A.a=B.b from B where B.b='2014-06-02'
这为什么不对啊?
求大神解答!
...全文
227 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
freecodex 2014-09-04
  • 打赏
  • 举报
回复
引用 楼主 zhang1554481180 的回复:
update A set A.a=B.b from B where B.b='2014-06-02' 这为什么不对啊? 求大神解答!
您要用B表的一个字段更新A表的一个字段吗 如果是这样的话,一般需要指明两个表的关联字段,如下是一个思路:
update A
set A.price = B.price
from A
inner join B on A.no=B.no where B.price = 20.5
说明:A,B两个表通过no关联,当B.price = 20.5 用B.price 更新对应的A.price
發糞塗牆 2014-09-04
  • 打赏
  • 举报
回复
不对是什么意思?你少了AB两表的关联条件,比如 update A set A.a=B.b from B where a.id=b.id and B.b='2014-06-02'
reenjie 2014-09-04
  • 打赏
  • 举报
回复
引用 9 楼 DBA_Huangzj 的回复:
update A set A.a=B.b from B where B.b='2014-06-02'等价于: update A set A.a=B.b from a, B where B.b='2014-06-02' 那么你可以试一下: select a.*,b.*,a.a,b.b from a, B where B.b='2014-06-02' 其中a.a,b.b就是你将要更新后的数据。 反复看了你的语句,你的语句还可以直接改为: update A set A.a='2014-06-02' 这是全表更新。
剛開始我也這樣認為,其實不然。 當B表中b字段有值等於'2014-06-02',才執行update A set A.a='2014-06-02'; 當B表中b字段沒有值等於'2014-06-02',什麼操作都沒有執行。 其實還是有條件的 update A set A.a='2014-06-02' where exists(select * from B where b='2014-06-02')
zhang1554481180 2014-09-04
  • 打赏
  • 举报
回复
恩恩,你加我QQ吧,479297820,我用这一个例子表达不清我想问的问题,谢谢你了啊,
發糞塗牆 2014-09-04
  • 打赏
  • 举报
回复
update A set A.a=B.b from B where B.b='2014-06-02'等价于: update A set A.a=B.b from a, B where B.b='2014-06-02' 那么你可以试一下: select a.*,b.*,a.a,b.b from a, B where B.b='2014-06-02' 其中a.a,b.b就是你将要更新后的数据。 反复看了你的语句,你的语句还可以直接改为: update A set A.a='2014-06-02' 这是全表更新。
zhang1554481180 2014-09-04
  • 打赏
  • 举报
回复
嘿嘿,原谅原谅,我不是故意的, 执行后, 提示 0行受影响,
發糞塗牆 2014-09-04
  • 打赏
  • 举报
回复
注意语气,你自己看看你的问题:为什么不对? 什么叫不对?数据不对?还是报错?说清楚啊 update A set A.a=B.b from B where B.b='2014-06-02' 你这是笛卡尔积啊,没关联就是笛卡尔积,知道么?
zhang1554481180 2014-09-04
  • 打赏
  • 举报
回复
原因,原因,原因
zhang1554481180 2014-09-04
  • 打赏
  • 举报
回复
知道么,我是问为什么了?
發糞塗牆 2014-09-04
  • 打赏
  • 举报
回复
如果你只取B的一个值,并且A表的那个列全部更新为这个值,就可以不关联,否则要关联,找出“需要update的数据”
zhang1554481180 2014-09-04
  • 打赏
  • 举报
回复
为什么必须有两表的关系啊?

22,209

社区成员

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

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