热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

sqlupdate多表联合更新的方法

sqlupdate多表联合更新的方法可以根据一个表的字段的值像关联查询一样修改一个表的字段值和另一个表关联update表一set表一.列名表二.列名from表一,表二where表一.ID表二.ID本文总结了Update语句更新多表时在SQLServer,Oracle,MySQL三种中的用法.我也试了SQLite数据库,都没成功,不知
sql update多表联合更新的方法

可以根据一个表的字段的值 像关联查询一样 修改 一个表的字段值 和另一个表关联
update 表一 set 表一.列名= 表二.列名 from 表一,表二 where 表一.ID = 表二.ID


本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种中的用法.我也试

了SQLite数据库,都没成功,不知是不支持多表更新还是咋的. 在本例中: 我们要用表gdqlpj

中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当

landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新.

SQL Server语法:UPDATE { table_name WITH ( [ ...n ] ) |

view_name | rowset_function_limited } SET { column_name = { expression | DEFAULT

| NULL } | @variable = expression | @variable = column = expression } [ ,...n ]

{ { [ FROM { } [ ,...n ] ] [ WHERE ] } | [

WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } [

OPTION ( [ ,...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)= ( 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子句后面

access

对多表更新
UPDATE a
SET a.t2 = b.t2
FROM x1 a, x2 b
WHERE a.t1 = b.t1

作一些试验:
x1表:
t1 t2 f_id
a 1
b 2
c 3
a 4
b 5
c 6
x2表
t1 t2 f_id
a 7
b 8
c 9

试验1:
UPDATE a
SET a.t2 = b.t2
FROM x1 a, x2 b
WHERE a.t1 = b.t1
结果:x1表中6行都被更新了。(起码是左连接的方式)

试验2:
UPDATE b
SET b.t2 = a.t2
FROM x1 a, x2 b
WHERE a.t1 = b.t1
结果为更新了三行,且数值为4,5,6。即用x1后面的三行去更新的。

试验3:
UPDATE a
SET a.t2 = b.t2
FROM x1 a, x2 b
结果六行全变9。

结论:用这种方式,两个表之间不是left join或right join 或者inner join,而是一种完

全连接的方式(where对全连接的结果进行了限制)。对某列的更新操作,在该列值有多行

时,只有最后一行生效

推荐阅读
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
author-avatar
wangimcf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有