A表字段更新为B表的字段值

T1表 结构

id      name       school

1       ming1      清华大学

2       ming2       北京大学

3       ming3       复旦大学

T2表  结构

id      student    school

11     ming1      牛津大学

12     ming3       剑桥大学

T1表的name 和 T2表的 student  值是 1对1 的对应。

需求:这两个字段的值相同时,根据B表的school更新A表的school。

语句:

update t1  set school = (select school from t2 where name=student) where  exists (select * from t2 as b where name = b.student);

结果:

T1表 结构

id      name       school

1       ming1      牛津大学

2       ming2       北京大学

3       ming3       剑桥大学

方法二:

update a set(a.province,a.city)=(select province,city from b where b.mobile=a.mobile)

注:用a.city=null不行的

时间: 2024-10-05 06:59:15

A表字段更新为B表的字段值的相关文章

MySQL复制表字段到另外一个表的字段

有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写: UPDATE tb_1 SET content_target = content_source; 大概写法如下:名仕娱乐城 Update {your_table} set {source_field} = {object_field} WHERE cause 有Navicat等工具更好,可以直接选中一列数据,拷贝粘贴到你需要的列中.如果是同一个表那没什么问题,如果是新表,请保持它们的行数是一致.如果行数不

SQL两表之间:根据一个表的字段更新另一个表的字段

1. 写法轻松,更新效率高: update table1 set field1=table2.field1, field2=table2.field2 from table2 where table1.id=table2.id 2. 常规方式,种写法相当于一个 Left join, 以外面的where为更新条数,如果不加where就是所有记录 update table1 set field1=(select top 1 field1 from table2 where table2.id=tab

如何使用MySQL一个表中的字段更新另一个表中字段

这篇文章主要介绍了如何使用MySQL一个表中的字段更新另一个表中字段,需要的朋友可以参考下 1,修改1列 ? 1 2 3 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2,修改多个列 ? 1 2 3 update a, b set a.title=b.title, a.name=b.name where a.id=b.id ?子查询 ? 1 update student s set ci

利用oracle rownum让表排序字段值连续

利用oracle rownum让表排序字段值连续 1.需求说明 表(eval_index)中有字段如下: 表字段 描述 说明 ID 主键 GROUP_ID 分组编号 SORT_NUM 排序序号 按照分值编号并排序:1.2.- 由于删除或其他操作,导致sort_num序号不连续:需要不改变原来的排序,保持其编号连续. 2.利用rownum功能实现 update eval_index a seta.sort_num = ( select b.rn from (select rownum rn ,id

sql语句之表间字段值复制遇到的一些问题--基于mysql

好久没来园子了,转眼2017已经到3月份了,前段时间一直忙没时间写博客(其实是自己懒),感觉内心好惭愧.昨天临下班前,技术老大突然对我说要改下表结构,问我能不能实现将一个表的字段值复制到另外一个表的某个字段中去,感觉这好拗口,其实就是表间字段值复制.于是,昨晚加了会儿班百度了下然后自己在本地测试了下,还真弄出来了,下面就把这个sql语句记下来,以备忘. 1,背景和需求 两张表a_user和b_user结构如下: a_user +--------+-------------+------+----

如何查出同一张表中字段值重复的记录

如何查出同一张表中字段值重复的记录 (2013-03-25 11:28:51) 转载▼ 比如现在有一人员表(表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2where p1.idp2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL

mysql 触发器-监控表字段更新

最近想实现一个监控mysql表的某个或者某几个字段值的变化,当监控字段的值发生变化时,将原有值和更新值保存下来.想实现这个功能受限想到的就是触发器,mysql的触发器块很久没碰过了,重新拎起来还是免不了查些资料什么的.花了点时间搞定了这个触发器.这里写个小例子来记录下mysql触发器编写的过程. mysql触发器格式如下: CREATE TRIGGER 触发器名 触发器时间 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句 END注:触发器名 - 触发器的名称 触发器时间 -

EF Code-First(Oracle)通过Migration来更新数据库的表的字段

关于Oracle中使用Entity Framework 6.x Code-First方式开发,请参考博客(菩提树下的杨过)https://www.cnblogs.com/yjmyzz/p/how-to-use-code-first-in-oracle-with-entity-framework-6.html的具体介绍,里面关于使用Entity Framework进行Code-First开发以及创建Database Migration有详细的讲解以及官方参考的连接.这里就不赘述了. 使用Entit

SQL添加表字段以及SQL查询表,表的所有字段名

通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0 alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0 alter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0 alter