-
SQL-两表之间:根据一个表的字段更新另一个表的字段
2021-03-04 16:14:57SQL-两表之间:根据一个表的字段更新另一个表的字段问题:Update方法Create方法 问题: 两表之间,通过表二中和表一相同的名称,来找出所对应的类型,并更新到表一类型中。 Table1: Name TypeID TypeName ...问题:
两表之间,通过表二中和表一相同的名称,来找出所对应的类型,并更新到表一类型中。
Table1:
Name TypeID TypeName 第一小学 0101 小学 101初中 0102 中学 第二中学 海淀小学 Table2:
Name FirstTypeID TypeName 第一小学 0101 小学 101初中 0102 中学 第二中学 0102 中学 海淀小学 0101 小学 Update方法
UPDATE Table1,Talbe2 SET Table1.TypeName = Table2.TypeName WHERE Table1.Name = Table2.Name
如果只更新表一部分数据,可直接在where后面加部分数据的限定条件;
更新太慢了Create方法
创建一个新的表3来替代表1
CREATE TABLE Table3 SELECT Name,TypeID,IF(TypeName IS NULL, Table2.TypeName, Table1.TypeName) AS TypeName //如果表一中类型为空值,那么在满足条件的join表中,取表2的类型值,否则取表1的类型值 FROM Table1 JOIN Table2 ON Table1.Name = Table2.Name
速度变快;
注意新建替代表3的列名顺序要与原始表1的列名顺序相等。关于 IF条件 语法,参考 sql中的 IF 条件语句的用法.
-
更新两张表中A表A字段与B表A字段相同,把B表B字段更新到A表A字段
2015-04-21 19:52:56user_bind_info_yybh 为表A kh_ydkh 为表B 下面的例子 UPDATE user_bind_info_yybh INNER JOIN (SELECT kh_ydkh.YHBH,kh_ydkh.YYHBH,kh_ydkh.FWMM FROM user_bind_info_yybh JOIN kh_ydkh ON kh_ydkh.YHBH ...user_bind_info_yybh 为表A
kh_ydkh 为表B
下面的例子
UPDATE user_bind_info_yybh INNER JOIN (SELECT kh_ydkh.YHBH,kh_ydkh.YYHBH,kh_ydkh.FWMM FROM user_bind_info_yybh JOIN kh_ydkh ON kh_ydkh.YHBH = user_bind_info_yybh.POWER_USER_NO) t2 ON user_bind_info_yybh.POWER_USER_NO = t2.YHBH SET user_bind_info_yybh.POWER_USER_NO = t2.YYHBH,user_bind_info_yybh.POWER_PWD = t2.FWMM -
两表间字段相互更新
2016-02-24 10:55:27先需要将A中的字段A_password 的值用户B表中的 vertification字段替换,如何实现呢? 比如其中一条记录的情况如下: A_id=31 A _password='888' B_id_=31 B_vertification='3011' 要将所有记录 B_... -
Oracle中用一张表的字段更新另一张表的字段
2020-12-14 22:44:17那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而Oracle中不知道方法了。 SQL Server中类似问题的解决方法 后来只好用笨的方法: 首先,将数据复制到... -
SqlServer两表之间:根据一个表的字段更新另一个表的字段
2020-04-09 17:14:46经百度查询到如下两种写法: 1. 写法轻松,更新效率高: update table1 set field1=table2.field1, field2=table2.field2 from table2 where table1.id=table2.id 2. 常规方式,种写法相当于一个Leftjoin,以外面...经百度查询到如下两种写法:
1. 写法轻松,更新效率高:
update table1
set field1=table2.field1,
field2=table2.field2
from table2
where table1.id=table2.id2. 常规方式,种写法相当于一个 Left join, 以外面的where为更新条数,如果不加where就是所有记录
update table1
set field1=(select top 1 field1 from table2 where table2.id=table1.id)
where table1.id in (condition)
————————————————当要更新的字段是另外两张表的结果集时,需要用到with as ,下面是我自己用到的sql:
with table1 as
(
select e.emp_id,t.health_attr_id from sys_emp e inner join sys_health_type t on e.health_type_id = t.health_type_id
)update a
set [health_attr_id] = b.[health_attr_id]
from dept_emp_time a
inner join table1 b
on a.emp_id = b.emp_id -
SQL两表之间:根据一个表的字段更新另一个表的字段
2019-12-20 22:20:341. 写法轻松,更新效率高: updatetb1 set field1=tb2.field1 from tb2 where tb1.id=tb2.id 2. 常规方式,写法相当于一个Leftjoin,以外面的where为更新条数,如果不加where就是所有记录 update tb1 set field1...1. 写法轻松,更新效率高:
update tb1
set field1=tb2.field1
from tb2
where tb1.id=tb2.id2. 常规方式,写法相当于一个 Left join, 以外面的where为更新条数,如果不加where就是所有记录
update tb1
set field1=(select top 1 field1 from tb2 where tb2.id=tb1.id)
where table1.id in (condition)----UPDATE a SET a.totalQty=a.totalQty-b.totalQty
----FROM JGEQ_YiTongPay_InventoryByGdsSeqno a,
----(SELECT gdsSeqno,SUM(totalQty) totalQty FROM JGEQ_InventoryByGdsSeqnoHaiBo_Edit GROUP BY gdsSeqno) b
----WHERE a.gdsSeqno =b.gdsSeqno -
sql两张表关联更新字段
2020-07-18 23:13:10--第一种写法,之前一直用,没有在意 UPDATE sr_t_TCodeUserReciveCfg SET fUserID=a.fUserID,fImportFlag=NULL FROM dbo.vw_userinfo AS a INNER JOIN dbo.sr_t_TCodeUserReciveCfg AS b ON a.sLoginName=b.... -
两表关联更新某个字段
2020-08-19 16:37:17UPDATE 表A as a,表B as b SET a.labour_company_id = b.id WHERE a.remark = b.remark -
【数据库】SQL两表之间:根据一个表的字段更新另一个表的字段
2018-01-05 22:23:001. 写法轻松,更新效率高:update table1set field1=table2.field1,field2=table2.field2from table2where table1.id=table2.id 2. 常规方式,种写法相当于一个Leftjoin,以外面的where为更新条数,如果不加where... -
sqlserver中用不重复的条件更新两个表对应字段字段。
2016-01-12 09:39:49表T1和表T2,表T2的F23字段用表T1的F3字段更新,条件是T1.F2=T2.F22并且只有T1.F2和T2.F22是一一对应,T1只有一条记录和T2对应,例子如下: create table t1(f1 int,f2 varchar(10),f3 varchar(10)); create table... -
Oracle两表关联(join)更新字段值一张表到另一张表
2016-01-10 20:54:05【采用视图更新的方式】有需求A表,B表,需要将B表中的name字段更新到A表中的name,两表有id关联,代码如下:update (selecta.nameaname,b.namebnamefromAa,Bbwherea.id=b.id) setaname=bname; --注:两表关联属性id... -
MySQL跨表更新字段 工作记录
2014-11-20 13:31:00工作中遇到两表查询,从user表中获取用户唯一id字段 写入到另外一张qiuzu表中的uid字段中; 二者可以关联起来的只有用户的手机号码tel字段; 了解需求后数据量稍多,不可能一个一个的手动修改 最快的只有通过mysql语句... -
sql语句问题 通过联立两个表更新其中一个表的字段
2014-10-22 00:03:00============问题描述========... 有两个表a和b,a表中的字段有mobilehead(号码前7位),provincename,b表中有mobile(正常号码),provincename,需求是通过联立两个表,更新b表中provincename为空的数据。 ... -
mysql大表更新字段类型_mysql alter修改字段的长度 类型sql语句
2021-01-18 20:38:16在mysql中alter命令可以修改字段类型,长度,名称或一些其它的参数,下面我来给大家介绍alter函数修改字段长度与类型的两个命令,希望文章来给各位带来帮助。mysql 修改字段长度alter table news modify column ... -
SQL技巧两则:选择一个表的字段插入另一个表,根据其它表的字段更新本表内容...
2018-09-19 14:59:00最近,在作django数据表迁移时用到的。 因为在django中,我把本来一个字符型字段,更改成了外键, 于是,哦喝~~~字符型字段相当于被删除了, 为了能导入这些字段的外键...一,选择一个表的字段插入另一个表 i... -
thinkphp---数据表更新字段开发模式可更新生产模式不能更新!
2018-05-18 16:41:00发现:提交的数据是有这两个字段,但是更新数据表的时候,这两个字段没有更新。在经过各种调试,打印查看,预览执行sql等等操作。都没有发现问题。 后来才想到可能市生成模式和开发模式不同(因为前面的... -
SQL——两个表之间的更新:用一个表的字段更新另一个表的字段
2012-01-19 12:35:51如果内面的表的(where之后取得的)条数比外面表的(where之后取得的)条数少, 会造成 不满足=条件的记录 赋给 null 值。 -- 要想不出现错误地赋 NULL 值, 必须在外面加一个 in ( select ... ) , 强制内外表的记录...