SQL 根据关联表更新主表中字段数据
2024-08-31 10:34:02
今天遇到一个客户的数据更新问题,两个相关联的表,一个主表用于保存单据主要信息,一个副表用于保存单据的明细信息;现在要把主表的其中一个字段的数据更新到副表的一个字段中保存。精通的SQL语法的,当然是很简单了。下面我作个详细的说明。
假设A表是主表,有单号order_id、开单人operator、开单日期oper_date、备注memo等;B表是副表,有单号order_id、序号id、商品编码code、商品名称name、备注memo等。A表的备注是有数据的,B表的备注没有数据,现在要把A表的数据更新到B表,并且B表有数据的不能更新了。A表与B表是以单号来关联的。更新数据的SQL语法如下:
update B set B.memo=A.memo from B,A
where A.order_id=B.order_id and (B.memo is null or B.memo='');
update B set B.memo=A.memo from B,A
where A.order_id=B.order_id and (B.memo is null or B.memo='');
A、B表的order_id是索引,而且是关联字段,所以要放在Where条件作为第一条件。B表的备注为空值,或等于没有值的,才能更新。
--------------------------
示例查询:
SELECT TOP 10 A.F_DATE,B.F_DATE FROM M..C1T06 A, M..C1T15 B WHERE
A.F_CODE=B.F_CODE AND A.F_CQRQ =B.F_CQRQ AND B.F_DATE IS NULL
示例更新:
UPDATE B SET B.F_DATE=A.F_DATE FROM C1T06 A, C1T15 B WHERE
A.F_CODE=B.F_CODE AND A.F_CQRQ =B.F_CQRQ AND B.F_DATE IS NULL
例:
UPDATE CSGK_VideoLog SET CSGK_VideoLog.Name = CSGK_Users.Name from CSGK_VideoLog,CSGK_Users where CSGK_Users.UserId=CSGK_VideoLog.UId and (CSGK_VideoLog.WTime > '2017-09-04 12:00:00.000')
最新文章
- python——django入门篇
- CentOS系统启动流程你懂否
- div基础
- ScrollView与ListView的冲突
- UIlabel多行文字自动换行 (自动折行)
- [转]基于SQL脚本将数据库表及字段提取为C#中的类
- Logback日志使用详解
- 矩阵分解(rank decomposition)文章代码汇总
- 【BZOJ 3926】 [Zjoi2015]诸神眷顾的幻想乡 (广义SAM)
- PL/SQL Developer 远程连接Oracle数据库
- SpringMVC08转发和重定向
- JavaScript中forEach的用法相关
- Android底部导航栏——FrameLayout + RadioGroup
- LINQ中,Single()、SingleOrDefault()的解析、示例
- Vue实现移动端页面切换效果
- ubuntu如何安装或更换内核
- [Aaronyang] 写给自己的WPF4.5 笔记7[三巴掌-ItemsControl数据绑定详解与binding二次处理 3/3]
- R语言函数总结(转)
- odoo软件名称及授权协议的变化
- BZOJ 4571 【SCOI2016】 美味
热门文章
- JVM工作原理 - 内存空间
- DSU模板(树的启发式合并)
- SpringMVC DispatcherServlet-------视图渲染过程
- BZOJ 2746: [HEOI2012]旅行问题
- 【BZOJ1864】三色二叉树(动态规划)
- POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和)
- WEB入门二 表格和表单
- 关于strassen矩阵乘法的矩阵大小不是2^k的形式时,时间复杂度是否还是比朴素算法好的看法
- std::function 使用_
- django中的转义