sql语句请教(update+left join)

zestsnake 2018-06-20 08:53:51
已经用如下的语句查询出数据

select * from mt t1
left join ManagerAccount t2 on
t1.mt_zh = t2.ManagerAcc_account and
t1.mt_kmh = t2.ManagerAcc_subAcc and
t1.mt_cur =t2.ManagerAcc_cur

where t2.ManagerAcc_account is null


mt 表的数据比 manageraccout 多,按照上面的条件 join 后,manageraccount 会出现很多null的记录。

想把manageraccount 出现null的记录的 manageracc.bbb 这一列,更新为 mt.aaa
...全文
2062 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinger126 2018-06-21
  • 打赏
  • 举报
回复
引用 3 楼 mynamexuerui 的回复:

update t2
set t2.bbb = t1.aaa
from manageraccount t2
right join mt t1 on
t1.mt_zh = t2.ManagerAcc_account and
t1.mt_kmh = t2.ManagerAcc_subAcc and
t1.mt_cur =t2.ManagerAcc_cur
where t2.bbb is null

试试呢,大致思路应该是这样的。

这个逻辑是有问题的,本身t2也就是manageraccount表记录数是比mt表少的,bbb值为null的行应该就是匹配不到的行,也就是在mt表有记录,在manageraccount表没有记录的行,更新啥啊.如果说要更新的表是mt表还是差不多
mynamexuerui 2018-06-21
  • 打赏
  • 举报
回复

update t2
set t2.bbb = t1.aaa
from manageraccount t2
right join mt t1 on
t1.mt_zh = t2.ManagerAcc_account and
t1.mt_kmh = t2.ManagerAcc_subAcc and
t1.mt_cur =t2.ManagerAcc_cur
where t2.bbb is null

试试呢,大致思路应该是这样的。
百合杰 2018-06-21
  • 打赏
  • 举报
回复
二月十六 版主 2018-06-20
  • 打赏
  • 举报
回复
出现null是因为manageraccount这个表中没有相关联的数据,就是没有这条数据,想让没有的数据update成别的数据也不能实现。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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