q837766242 2018-10-09 11:13 采纳率: 100%
浏览 4066
已采纳

SQL将一个A表某列替换到B表某列

图片说明
上面是A表 下面是B表
A表相当于字典 字段 FItemID 对应 FNneme
想要将B表字段 FItemID 替换成A表的 FName
但B表的 FItemID 有很多重复项 执行

 update B set FItemID = (select FName from A where FItemID = FItemID)

消息 512,级别 16,状态 1,第 1 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。

  • 写回答

5条回答 默认 最新

  • xi13338375262 2018-10-09 16:31
    关注

    个人认为你的代码有点错误,应该是update B set FItemID=(select FName from A where A.FItemID=B.FItemID)
    由于两张表都有FItemID列,所以书写代码时应该说明是哪张表的FItemID。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 垠迹信息科技 上海垠迹信息科技有限公司官方账号 2018-10-10 03:17
    关注

    update A, B set B.FItemId = A.FName where B.FItemId = A.FItemId

    评论
  • JIALIH_H 2018-10-09 14:05
    关注

    可以用视图来实现,创建一个视图包括 A 表的 FName 列与 B 表除 FItemID 列,然后查询该视图,查询到的表就是你想要的表

    评论
  • 葫芦胡 2018-10-10 01:53
    关注

    这样:
    update B,A set B.FItemID = A.FItemID where B.FItemID = A.FItemID

    评论
  • bluepigya 2018-10-10 08:31
    关注

    是因为你A表 FItemID有重复,不是B表。另外不建议你直接修改B表,建View比较好。但如果你重构数据库,那没问题

    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 Tpad api账户 api口令
  • ¥30 ppt进度条制作,vba语言
  • ¥15 stc12c5a60s2单片机测光敏ADC
  • ¥15 生信simpleaffy包下载
  • ¥15 请教一下simulink中S函数相关问题
  • ¥15 在二层网络中,掩码存在包含关系即可通信
  • ¥15 端口转发器解析失败不知道电脑设置了啥
  • ¥15 Latex算法流程图行号自定义
  • ¥15 关于#python#的问题:我在自己的电脑上运行起来总是报错,希望能给我一个详细的教程,(开发工具-github)
  • ¥40 基于51单片机实现球赛计分器功能