mysql跨表更新示例
一、在同一个表中冗余存储记录之间的关系(组织机构树),查询时需要根据冗余字段进行关联查询
例如,下面的示例,用户表中有个字段friend标记其朋友关系,要求找出id=2及他的朋友(父节点)
mysql> select * from user;
+----+-------+--------+
| id | name | friend |
+----+-------+--------+
| 1 | duan | 0 |
| 2 | liang | 1 |
| 3 | hou | NULL |
+----+-------+--------+
3 rows in set (0.00 sec) mysql>
sql:用or或union
mysql> SELECT * FROM USER u WHERE u.id=2 OR u.id=(SELECT friend FROM USER WHERE id=2);
+----+-------+--------+
| id | name | friend |
+----+-------+--------+
| 1 | duan | 0 |
| 2 | liang | 1 |
+----+-------+--------+
2 rows in set (0.00 sec) mysql> select * from user t where id=2 union select * from user where id in(select friend from user where id=2);
+----+-------+--------+
| id | name | friend |
+----+-------+--------+
| 2 | liang | 1 |
| 1 | duan | 0 |
+----+-------+--------+
2 rows in set (0.00 sec) mysql>
二、根据另一个表条件,更新本表
2、用户表和设备表
mysql> select * from user1;
+----+-------+--------+---------+
| id | name | device | company |
+----+-------+--------+---------+
| 1 | duan | NULL | c1 |
| 2 | liang | NULL | c2 |
| 3 | hou | NULL | c3 |
+----+-------+--------+---------+
3 rows in set (0.00 sec) mysql> select * from device;
+------+---------+---------+
| d_id | d_name | company |
+------+---------+---------+
| 11 | shebei1 | c1 |
| 12 | shebei2 | c2 |
| 13 | shebei3 | c3 |
+------+---------+---------+
3 rows in set (0.00 sec) mysql>
将拥有相同的公司的设备id填入到用户表中
方法:
- 关联
- set select from(同一个表内不行报错You can't specify target table 'user2' for update in FROM clause,SQL SERVER 可以)见《mysql update一张表不能直接使用set select from的结果》
mysql> UPDATE user1 u SET device=(SELECT d_id FROM device d WHERE u.company=d.company);
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0 mysql> UPDATE user1,device SET user1.device=device.d_id WHERE user1.company=device.company;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0 mysql>
mysql跨表更新示例的更多相关文章
- Mysql跨表更新 多表update sql语句总结
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是P ...
- Mysql跨表更新
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法,需要的朋友可以参考下 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Pr ...
- MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?
项目中,评论数,关注数等数据,是实时更新的.+1,-1 这种. 有的时候,可能统计不准确. 需要写一个统计工具,更新校准下. 用Java写SQL和函数,代码很清晰,方便扩展,但是太慢了. 为了简单起见 ...
- MySQL跨表更新字段 工作记录
工作中遇到两表查询,从user表中获取用户唯一id字段 写入到另外一张qiuzu表中的uid字段中; 二者可以关联起来的只有用户的手机号码tel字段; 了解需求后数据量稍多,不可能一个一个的手动修改 ...
- MySQL跨表更新SQL
1 sql范式 把s表中的city_name的值设置为city表中的name,关联条件是city_code 和 code update student s, city c set s.city_na ...
- mysql 跨表更新
update hhs_goods as g INNER JOIN (select SUM(goods_number) as goods_number,goods_id from hhs_order_g ...
- mysql 去重,跨表更新,跨表删除
一.去重 1.查询出重复的记录 CREATE TABLE push_log_full_2013_10_30_tmp SELECT * FROM `push_log_full` WHERE time B ...
- 跨表更新,Mysql Update Join
背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为t_dept_members, 系统中有另外一张表 t_user_info 记录了人员信息. 要求将 ...
- 本表触发更新modifytime,跨表更新modifytime 触发器
一.每行有改动,则触发更新modifytime SQL> create table test(id int, name varchar(10), crdate date, udate date) ...
随机推荐
- ZOJ 3626 Treasure Hunt I(树形dp)
Treasure Hunt I Time Limit: 2 Seconds Memory Limit: 65536 KB Akiba is a dangerous country since ...
- android-BroadcastReceive广播接收器
应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应.广播接收器没有用户界面.然而,它们可以启动一个activity或service来响应它们 ...
- HRBUST2030(dfs)
成语接龙 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %lld , %llu Java class nam ...
- Crtmp Server 几个关键流程
最近在阅读Crtmp Sever 源码,有些关键流程记录下来,以备以后查阅.假设rtmp播放地址是"rtmp://127.0.0.1/live/mystream live=1" 1 ...
- php错误封装类
1.创建MyErrorHandler.php文件 代码如下: <?php class MyErrorHandler { public $message; public $filename; pu ...
- Hadoop学习笔记(一)——Hadoop体系结构
HDFS和MapReduce是Hadoop的两大核心. 整个Hadoop体系结构主要是通过HDFS来实现分布式存储的底层支持的,而且通过MapReduce来实现分布式并行任务处理的程序支持. 一.HD ...
- win7-64bit下基于VMware12.5安装rhel-server-6.3-i386
/************************************************************************************* 宿主PC:win7-64b ...
- kubernetes调度之污点(taint)和容忍(toleration)
系列目录 节点亲和性(affinity),是节点的一种属性,让符合条件的pod亲附于它(倾向于或者硬性要求).污点是一种相反的行为,它会使pod抗拒此节点(即pod调度的时候不被调度到此节点) 污点和 ...
- Java 多线程1(转载)
来源:http://hllvm.group.iteye.com/group/wiki/2877-synchronized-volatile 最近想将java基础的一些东西都整理整理,写下来,这是对知识 ...
- 程序猿的量化交易之路(27)--Cointrader之PriceData价格数据(14)
转载须注明出处:http://blog.csdn.net/minimicall?viewmode=contents,http://cloudtrade.top/ PriceData:价格数据.价格数据 ...