SQL 根据关联表更新主表中字段数据
2017-11-15 23:30
302 查看
今天遇到一个客户的数据更新问题,两个相关联的表,一个主表用于保存单据主要信息,一个副表用于保存单据的明细信息;现在要把主表的其中一个字段的数据更新到副表的一个字段中保存。精通的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='');
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
例:
假设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='');
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')
相关文章推荐
- Mysql 根据一个表数据更新另一个表的某些字段(sql语句)
- 更新 将B表的数据更新到A表中的某个字段的sql(根据条件)
- SQL数据表两个字段关联同一张数据表
- SQL语句增加虚拟字段,并根据情况显示不同的数据。。。(已阅。。。未阅。。)
- sql中while遍历更新字段数据
- sql根据某一字段值的不同关联不同的表(一)
- SQL语句二次排序。先根据是否置顶字段。再根据最后更新时间排序。
- 根据字段关联批量修改关联数据
- SQL脚本实现两张关联数据表之间批量更新UPDATE
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- SQL中如何把A表的字段数据更新到B表的字段
- 如何使用 t-sql 更新数据库中日期字段的部分数据(年?月?日?时?分?秒?)
- 根据基础数据表id获取数据库中关联表字段内容方法
- sql 根据关联 用一个表的值修改另一个表对应字段的值
- 使用游标将excel不同表的列关联,并根据两表间相同的列值逐行更新数据
- SQL两表之间:根据一个表的字段更新另一个表的字段
- SQL 根据一个表更新另一个表的字段
- 无唯一性字段情况下,双表关联更新数据方案
- 两表若干字段相同,根据等值连接更新其中一表中的数据
- SQL-根据多个条件更新数据