mysql 根据一张表更新另一张表】的更多相关文章

1.背景说明 很多时候我们需要通过一张中间表的数据去更新另外一张表,而不仅仅是通过固定数值去更新,尤其是当数据量很大的时候,简单的复制粘贴就不大可行了. 2.MYSQL版本 SELECT VERSION() AS MYSQL版本; 如下图所示: 3.表示例 Student表: 中间表Temp: 我们需要用中间表的name.sex.age字段来更新Student表的对应字段 4.更新操作 UPDATE feifei.student s, feifei.temp t SET s.name = t.n…
在mysql中,通过一张表的列修改另一张关联表中的内容: 1:  修改1列 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2:  修改多个列 update a, b set a.title=b.title, a.name=b.name where a.id=b.id 3: 采用子查询 update student s set city_name = (select name from c…
between 是>= and <=,即包含两个边界…
update CDINFO.Dept_Dict tab1 set PART_FLAG = (select PART_FLAG from DICT.DEPARTMENT_DICT@zyhis4 tab2 where tab1.dept_code = tab2.dept_code) where exists (select 1 from DICT.DEPARTMENT_DICT@zyhis4 tab2 where tab1.dept_code = tab2.dept_code)…
UPDATE channelcountry, appywproducts SET channelcountry.ChannelName = appywproducts.YWNameCN WHERE channelcountry.ChannelCode = appywproducts.YWCode; 或者 UPDATE channelcountry a SET ChannelName = ( SELECT YWNameCN FROM appywproducts b WHERE a.ChannelC…
今天遇到这样一个需求: 有两张表,一张是专辑表,另一张是专辑下的图片表, 专辑表中有拍摄年\月,两个字段; 图片表中有实际拍摄日期的字段; 因为专辑表中这两个字段是后加入的,因此只能用一条sql语句将之前程序没有写入的拍摄年月增加进入; 其实这个问题很简单,所以毫不犹豫采用了 以下模式进行更新, UPDATE streetphoto a SET a.`year` = YEAR(photos.`shootdate`), a.`month` = MONTH(photos.`shootdate`) 结…
知道是两张表进行更新,之前作过mysql的,直接就写了: update a,b set a.code = b.code wehre a.id = b.id 然后就报错了,上网查了下知道oracle不能这样子写 之后找到如下的办法: UPDATE a set a.code = (select b.code from b where a.id = b.id) 但是这条语句如果数据多的话会很慢,因为他要每条数据都要跟新 然后又找到了这条sql: MERGE INTO a USING b ON ( a.…
用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊.看一个例子就明白了. create table student ( student_id int not null ,student_name varchar(30) not null ,city_code varchar(10) null ,city_name varchar(50) null ); create table city ( code varchar…
表结构: CREATE TABLE ATEST  (ID    INTEGER,   NAME  VARCHAR(256),   CODE  INTEGER,   NAME2 VARCHAR(256)  )CREATE TABLE BTEST  (ID    INTEGER,   CODE  INTEGER  )CREATE TABLE CTEST  (ID    INTEGER,   NAME  VARCHAR(256),   NAME2 VARCHAR(256)  )SQL语句: 一张表更新…
1.查看删除数据库表的唯一约束 SHOW INDEX FROM tbl_name (唯一约束也是索引) ALTER TABLE tbl_name DROP INDEX index_name   2.update where中不能使用子查询,解决方案如下: 将子查询作为一张表放在前面 UPDATE `areainfo` a, ( SELECT code FROM `areainfo` where level = 1 ) b SET a.`level` =2 WHERE a.`parent_code…
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%. 在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式: UPDATE product p, productPri…
一.去重 1.查询出重复的记录 CREATE TABLE push_log_full_2013_10_30_tmp SELECT * FROM `push_log_full` WHERE time BETWEEN FROM_DAYS(TO_DAYS(NOW()) - 1) AND FROM_DAYS(TO_DAYS(NOW())) AND (imsi, andriodid, time) IN ( SELECT imsi, andriodid, time FROM `push_log_full`…
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法,需要的朋友可以参考下 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%. 在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式: UPDATE product p,…
比如有两张表,其中一张表某个字段的值要关联另一张表进行统计,就要用到mysql的update方法,并且left join另一张表进行联合查询. mysql关联表更新统计 sql语句如下: 代码如下 复制代码 UPDATE product p, productPrice pp SET pp.price = pp.price * 0.8 WHERE p.productId = pp.productId AND p.dateCreated < '2004-01-01' 另外一种方法是使用inner j…
背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为t_dept_members, 系统中有另外一张表 t_user_info 记录了人员信息. 要求将 t_dept_members 中有变化的信息更新到 t_user 表中,这个需求就是「跨表更新」啦 不带脑子出门的就写出了下面的 SQL 看到身后 DBA 在修仙,想着让他帮润色一下,于是发给了他,然后甩手回来就是这个样子: 看到这个 SQL 语句我都惊呆了,还能这样写,咱得查查这是咋回事啊 My…
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁:InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁. MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小,加…
本文介绍下,mysql中进行批量更新.多表更新.多表删除的一些实例,有需要的朋友可以参考下. 本节主要内容: mysql的批量更新.多表更新.多表删除 一,批量更新: 复制代码代码示例: update tepoi,pinf set tepoi.x=pinf.fx,tepoi.y=pinf.fy where tepoi.pid=pinf.dmgis_id and tepoi.pid>10000; 假设有表a,b,其结构为: 复制代码代码示例: a(id,email,name)   b(id,ema…
今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而Oracle中就不知道方法了. SQL Server中类似问题的解决方法 后来只好用最笨的方法: 首先,将数据复制到Excel:(假设称测试库的表为A--含有数据) 然后,在开发库中建立和表A同结构的表B:(这里为了导入数据的简单,我对表B的结构进行了改造,只有两个字段) 图 表B的数据 再利用PL…
工作中遇到两表查询,从user表中获取用户唯一id字段 写入到另外一张qiuzu表中的uid字段中; 二者可以关联起来的只有用户的手机号码tel字段; 了解需求后数据量稍多,不可能一个一个的手动修改 最快的只有通过mysql语句来解决问题了 使用左联接 UPDATE qiuzu q LEFT JOIN USER u ON q.tel = u.tel SET q.uid = u.id WHERE q.uid IS NULL OR q.uid = 0 仅作工作记录只用(http://www.hioo…
1.单表更新 (1)mysql> SELECT * FROM users;+----+----------+----------+-----+------+| id   | username | password | age | sex    |+----+----------+----------+-----+------+| 1   | Tom         | 123         | 25   | 1       || 2   | John         | 456        …
1.第一种:INSERT [INTO] tbl_name[ (col_name, ... ) ]  {VALUES | VALUE}({expr |default}, ... ), (...), ... 如果为自动编号的字段赋值的话,可以采用NULL或者DEFAULT让其采用默认的递增的形式来实现. INSERT users VALUES(DEFAULT, 'Tom', '123', 25, 1); INSERT users VALUES(NULL, 'John', '456', 3*7-5,…
文章转自http://www.cnblogs.com/andy_tigger/archive/2011/05/11/2043483.html 多表更新在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改. 如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次序被更新.这实际上只有连同 LIMIT 一起才有用. 从 MySQL 4.0.4 开始,你也可以执行一个包含多个表的 UPDATE 的操作: UPDATE i…
Solution 1:  修改1列(navicate可行) update student s, city c set s.city_name = c.name where s.city_code = c.code; Solution 2:  修改多个列 update  a,  b set a.title=b.title, a.name=b.name where a.id=b.id Solution 3: 采用子查询(navicate不可行) update student s set city_n…
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁:InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁. MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小,加…
多表更新 在 MySQL 3.23 中,你能够使用 LIMIT # 来确保仅仅有给定的记录行数目被更改. 假设一个 ORDER BY 子句被使用(从 MySQL 4.0.0 開始支持),记录行将以指定的次序被更新.这实际上仅仅有连同 LIMIT 一起才实用. 从 MySQL 4.0.4 開始,你也能够运行一个包括多个表的 UPDATE 的操作:  UPDATE items,month SET items.price=month.price WHERE items.id=month.id; 注意:…
如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3_6=b.f07_1,a.gk07_4_6=b.f08_1  where   substring(a.gk01,1,4) in ('5323') and a.gk01=b.gk01 and dqdm='532300' 如果漏掉了where会怎么样: UPDATE hzxm201610 a,xmhzy…
项目中,评论数,关注数等数据,是实时更新的.+1,-1 这种. 有的时候,可能统计不准确. 需要写一个统计工具,更新校准下. 用Java写SQL和函数,代码很清晰,方便扩展,但是太慢了. 为了简单起见,只写sql来统计,然后更新.(不想写存储过程) 语句如下: #更新一个人的 关注数 followingCount update behavior_redman_count a inner join ( select memberId,count(*) as followingCount from…
一:关联不同的表更新 1: 通过where关联更新 update student s, city c set s.province_name = c.province_name, s.city_name = c.name where s.city_code = c.code; 2:子查询更新 update student s set city_name = (select name from city where code = s.city_code); 子查询更新优化: UPDATE t_ad…
1.需求 有2张表,a表和b表,要把b表的name数据复制到a表中,当2表的id字段一样的时候 UPDATE A a, B b SET a.name = b.my_name WHERE a.id = b.id…
多表更新:参照另外的表来更新本表的内容 table_reference {[inner | cross] join | {left | right} [outer] join}  内连接.左外连接.右外连接 table_reference ON conditional_expr   表的连接条件 update table_references SET col_name1={expr1 | default} [ , col_name={expr2={expr2 | default }}].....…