今天同学发了个sql题目 
A1表 B1表 
id num id snum 
1 10 1 90 
2 2000 3 4000 
3 30 
B表的数据插入A表当中 
最后的结果 
A表 
1 90 
2 2000 
3 4000 
当时也没有多想,感觉一条insert语句搞不定。但是同学说就一条语句。 
最后请教是B1表就这些数据,没有其他的。这是面试题。不能想复杂了,是我想太多了。 
update就可以了 
CREATE TABLE A1 ( 
id VARCHAR(12) NULL DEFAULT NULL COLLATE ‘utf8_general_ci’, 
num VARCHAR(12) NULL DEFAULT NULL 

COLLATE=’utf8_general_ci’ 
ENGINE=InnoDB 

CREATE TABLE B1 ( 
id VARCHAR(12) NULL DEFAULT NULL COLLATE ‘utf8_general_ci’, 
snum VARCHAR(12) NULL DEFAULT NULL 

COLLATE=’utf8_general_ci’ 
ENGINE=InnoDB 

首先这里是一条sql实现多行更新。 
update A1,B1 set A1.num = XXXX where A1.id=B1.id 
其次需要判断大小 
if(A1.num>B1.snum,A1.num,B1.snum) 
最后语句 
update A1,B1 set A1.num = if(A1.num>B1.snum,A1.num,B1.snum) where A1.id=B1.id

update多表陷阱的更多相关文章

  1. SQL SERVER Update from 使用陷阱

    原文:SQL SERVER Update from 使用陷阱 update A set from A left join B on 此方法常用来使用根据一个表更新另一个表的数据,来进行数据同步更新.若 ...

  2. MySQL中select * for update锁表的范围

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  3. MySQL中select * for update锁表的问题

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  4. Oracle\MS SQL Server Update多表关联更新

    原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...

  5. 书写 sql 中关于 update 多表联合更新的方法

    SQL Update多表联合更新的方法(1) sqlite 多表更新方法//----------------------------------update t1 set col1=t2.col1fr ...

  6. 170823、SQL Update多表联合更新的方法

    SQL Update多表联合更新的方法 (1) sqlite 多表更新方法 update t1 set col1=t2.col1 from table1 t1 inner join table2 t2 ...

  7. Mysql 批量更新update的表与表之间操作

    Mysql 批量更新update的表与表之间操作 一.方法一 使用User2表数据更新User表: update User as a ,User2 as b set a.role_id=b.set_v ...

  8. SQL update 多表连接方法

    SQL Update多表联合更新的方法 () sqlite 多表更新方法 //---------------------------------- update t1 set col1=t2.col1 ...

  9. ssh整合思想 Spring与Hibernate的整合ssh整合相关JAR包下载 .MySQLDialect方言解决无法服务器启动自动update创建表问题

    除之前的Spring相关包,还有structs2包外,还需要Hibernate的相关包 首先,Spring整合其他持久化层框架的JAR包 spring-orm-4.2.4.RELEASE.jar  ( ...

随机推荐

  1. [easyui] datebox源码阅读. 批注

    jquery.datebox.js 文件. (function($){ /** * create date box */ function createBox(target){ var state = ...

  2. poj 2220 Sumsets

                                                                                                     Sum ...

  3. 多项分布(multinominal distribution)

    简介 更一般性的问题会问:“点数1~6的出现次数分别为(x1,x2,x3,x4,x5,x6)时的概率是多少?其中sum(x1~x6)= n”.这就是一个多项式分布. 定义 把二项分布推广至多个(大于2 ...

  4. php安装libevent

    libevent扩展安装 libevent-2.0.16-stable.tar http://libevent.org/ [plain] view plaincopy cd libevent-2.0. ...

  5. const和#define的区别

    在刷题的时候经常遇到定义全局常量我一般都是用#define(可能是因为很少接触const的原因) 在昨天做到51nod1082时照常暴力用#define定义最大.可是提交超时..... 后来看他人写的 ...

  6. Kakfa揭秘 Day4 Kafka中分区深度解析

    Kakfa揭秘 Day4 Kafka中分区深度解析 今天主要谈Kafka中的分区数和consumer中的并行度.从使用Kafka的角度说,这些都是至关重要的. 分区原则 Partition代表一个to ...

  7. 2016 Multi-University Training Contest 1 Necklace 环排+二分匹配

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5727 题意:由2*N颗宝石构成的环(阴阳宝石均为N颗且标号均从1~N) 之后给定M组 a,b;表示阳宝石a ...

  8. PHP webserver 之 soap non-wsdl

    non-wsdl 顾名思义就是不使用wsdl文件进行的webserver服务 事实上个人觉得用wsdl模式还不如使用non-wsdl模式,wsdl模式稍加麻烦! 1.网站运行环境下开启soap模块(p ...

  9. MVC视图引擎

    1.视图引擎:把视图解析成浏览器可执行的html代码 2.aspx视图: <%=表达式%>: <% C#代码段 %>: 3.razor视图: @(表达式):@ViewData[ ...

  10. EXTJS 4.2 资料 控件lable定义

    代码: { xtype:'label', id:'label', labelSeparator :'', // 去掉laebl中的冒号 fieldLabel : '这是个label' } 赋值: Ex ...