当前位置: 首页 > news >正文

SQL UPDATE实现多表更新

为什么80%的码农都做不了架构师?>>>   hot3.png

SQL UPDATE实现多表更新

from:http://bbs.chinabyte.com/thread-347169-1-1.html 在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的. 在本例中: 我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新. SQL Server语法:UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } SET { column_name = { expression | DEFAULT | NULL } | @variable = expression | @variable = column = expression } [ ,...n ] { { [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ] } | [ WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } [ OPTION ( < query_hint > [ ,...n ] ) ] SQL Server示例: update a set a.gqdltks=b.gqdltks,a.bztks=b.bztks from landleveldata a,gdqlpj b where a.GEO_Code=b.lxqdm

Oracle语法: UPDATE updatedtable SET (col_name1[,col_name2...])= (SELECT col_name1,[,col_name2...] FROM srctable [WHERE where_definition]) Oracel 示例: update landleveldata a set (a.gqdltks, a.bztks)= (select b.gqdltks, b.bztks from gdqlpj b where a.GEO_Code=b.lxqdm)

MySQL语法: UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] MySQL 示例: update landleveldata a, gdqlpj b set a.gqdltks= b.gqdltks, a.bztks= b.bztks where a.GEO_Code=b.lxqdm

有A、B张表,其记录如下: A表 c1 c2

1 a1 2 a2 3 a3 8 a8 B表 c1 c3

1 b1 2 b1 3 b3 10 b10 A.c1与B.c1相等,用一条sql语句,实现A.c2的值更新为B.c3

UPDATE A SET A.c2 =B.c3 from A ,B where A.c1=B.c1 UPDATE A SET A.c2 =B.c3 from A inner join B on A.c1=B.c1 注意:update后面是不能跟多表的,但跟在from子句后面

转载于:https://my.oschina.net/3715cc/blog/1560213

相关文章:

  • 常用的JavaScript验证正则表达式
  • 在VMware Workstation上安装Ubuntu 16.04 Server操作系统
  • Linux安装yum源码包及相关操作
  • Windows Embedded CE链接RNDIS的奇怪问题
  • 10个完整的Android开源项目,值得大家学习借鉴
  • Ubuntu Mini1010所走过的路
  • snmp,mrtg安装和配置(2) mrtg安装
  • C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令
  • 产品设计体会(3012)如何做好“老板项目”
  • Linux内核管理--内存(一)
  • 电脑一开机时出现A: Dirve error的解决办法
  • ps查询进程
  • 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志
  • 基于pt-query-digest的慢查询日志持续追踪
  • 配置基于角色管理的Configuration Manager
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【comparator, comparable】小总结
  • es6(二):字符串的扩展
  • express + mock 让前后台并行开发
  • Flannel解读
  • gcc介绍及安装
  • IDEA常用插件整理
  • Laravel核心解读--Facades
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • PAT A1050
  • Selenium实战教程系列(二)---元素定位
  • Solarized Scheme
  • spring security oauth2 password授权模式
  • SQLServer之创建显式事务
  • Swift 中的尾递归和蹦床
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 检测对象或数组
  • 前端性能优化——回流与重绘
  • 前端知识点整理(待续)
  • 无服务器化是企业 IT 架构的未来吗?
  • MPAndroidChart 教程:Y轴 YAxis
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (Git) gitignore基础使用
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (多级缓存)缓存同步
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (接口自动化)Python3操作MySQL数据库
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)Linux+Windows下安装ffmpeg
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (轉貼) UML中文FAQ (OO) (UML)
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net