位置: 编程技术 - 正文

多表关联同时更新多条不同的记录方法分享(多表关联执行顺序)

编辑:rootadmin
以下为测试例子。 1.首先创建两张临时表并录入测试数据:

查询出此时的表数据为:

#temptest1 #temptest2

推荐整理分享多表关联同时更新多条不同的记录方法分享(多表关联执行顺序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:多表关联添加,多表关联执行顺序,多表关联查询还会走索引吗,多表关联更新数据,多表关联添加,多表关联添加,多表关联怎么优化,多表关联join,内容如对您有帮助,希望把文章链接给更多的朋友!

2.现在要将#temptest2中的年龄更新到相应的#temptest1中的年龄。

其实就是让[表1]中ID为1的年龄改成,同时ID为2的年龄改成。

当然这里的要求是只用一句SQL,不能用循环。

结果如下:

实现方法如下:

多表关联同时更新多条不同的记录方法分享(多表关联执行顺序)

Update t1

Set t1 .age = t2.age

From #temptest1 t1

Join #temptest2 t2

On t1.id = t2.id

(补充)Sql Server Merge命令写法:

merge into #temptest1 t1 using(select age,id from #temptest2) t2on t1.id = t2.idwhen matched thenupdate set t1.age = t2.age

是不是挺有趣的Sql。如何一次性更新多条不同值的记录标题可能没说清楚,假设有这样两张表: 现有记录 testA: ID ENG CHI =============== 1 a 一 2 b 二 3 c 三 testB: ID ENG CHI ANY.... ================= 1 d 四 2 e 五 3 f 六 我想把testB中的记录的ENG,CHI字段更新到testA中去,以ID来对应。 CODE: SQL> set autot on SQL> update ta set ta.b=(select tb.b from tb where ta.a=tb.a) where exists (select 1 from tb where ta.a=tb.a); 已更新4行。 已用时间: : : . 执行计划 ---------------------------------------------------------- Plan hash value: -------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------- | 0 | UPDATE STATEMENT | | 5 | | ()| :: | | 1 | UPDATE | TA | | | | | |* 2 | HASH JOIN SEMI | | 5 | | 5 ()| :: | | 3 | TABLE ACCESS FULL | TA | 5 | | 2 (0)| :: | | 4 | VIEW | VW_SQ_1 | 4 | | 2 (0)| :: | | 5 | TABLE ACCESS FULL| TB | 4 | | 2 (0)| :: | |* 6 | TABLE ACCESS FULL | TB | 1 | | 2 (0)| :: | -------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("TA"."A"="ITEM_1") 6 - filter("TB"."A"=:B1) Note ----- - dynamic sampling used for this statement (level=2) 统计信息 ---------------------------------------------------------- 0 recursive calls 4 db block gets consistent gets 0 physical reads redo size bytes sent via SQL*Net to client bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 4 rows processed SQL> update ta set ta.b=(select tb.b from tb where ta.a=tb.a) where ta.a= (select tb.a from tb where ta.a=tb.a); 已更新4行。 已用时间: : : . 执行计划 ---------------------------------------------------------- Plan hash value: ---------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------- | 0 | UPDATE STATEMENT | | 1 | | 7 ()| :: | | 1 | UPDATE | TA | | | | | |* 2 | FILTER | | | | | | | 3 | TABLE ACCESS FULL| TA | 5 | | 2 (0)| :: | |* 4 | TABLE ACCESS FULL| TB | 1 | | 2 (0)| :: | |* 5 | TABLE ACCESS FULL | TB | 1 | | 2 (0)| :: | ---------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter("TA"."A"= (SELECT "TB"."A" FROM "TB" "TB" WHERE "TB"."A"=:B1)) 4 - filter("TB"."A"=:B1) 5 - filter("TB"."A"=:B1) Note ----- - dynamic sampling used for this statement (level=2) 统计信息 ---------------------------------------------------------- recursive calls 1 db block gets consistent gets 0 physical reads redo size bytes sent via SQL*Net to client bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 4 rows processed 如果 create unique index tb_a_uidx on tb(a); [Copy to clipboard] [ - ] CODE: SQL> update (select ta.b tab1 ,tb.b tbb from ta,tb where ta.a=tb.a) set tab1=tbb; 已更新4行。 已用时间: : : . 执行计划 ---------------------------------------------------------- Plan hash value: ---------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------- | 0 | UPDATE STATEMENT | | 4 | | 5 ()| :: | | 1 | UPDATE | TA | | | | | |* 2 | HASH JOIN | | 4 | | 5 ()| :: | | 3 | TABLE ACCESS FULL| TB | 4 | | 2 (0)| :: | | 4 | TABLE ACCESS FULL| TA | 5 | | 2 (0)| :: | ---------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("TA"."A"="TB"."A") Note ----- - dynamic sampling used for this statement (level=2) 统计信息 ---------------------------------------------------------- 8 recursive calls 4 db block gets consistent gets 0 physical reads redo size bytes sent via SQL*Net to client bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 3 sorts (memory) 0 sorts (disk) 4 rows processed

在数据库中自动生成编号的实现方法分享 在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这是个最简单的办法,但是后果会有些不是你想要的!看

运行asp.net程序 报错:磁盘空间不足 一看,C盘只有不到2M可用空间,一查原因,sqlserver安装路径下的log目录文件占了好大,5G多,于是上网搜了下,解决了:把与sqlserver有关的服务停掉,log

MSSQL优化之探索MSSQL执行计划(转) 网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S

标签: 多表关联执行顺序

本文链接地址:https://www.jiuchutong.com/biancheng/348888.html 转载请保留说明!

上一篇:SQL server使用自定义函数以及游标(sql server如何使用)

下一篇:在数据库中自动生成编号的实现方法分享(数据库中自动增长)

  • php实现网页缓存的工具类分享(php缓存数据到内存)

    php实现网页缓存的工具类分享(php缓存数据到内存)

  • 使用PHP处理数据库数据如何将数据返回客户端并显示当前状态(php处理大量数据)

    使用PHP处理数据库数据如何将数据返回客户端并显示当前状态(php处理大量数据)

  • 详解DB2 sqlstate 57016 SQLCODE=-668 原因码

    以上所述是小编给大家介绍的详解DB2 sqlstate SQLCODE=- 原因码 "7"错误的快速解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

    SQL Server 数据库分离与附加 就这么简单! 一、概述SQLServer提供了分离/附加数据库、备份/还原数据库、复制数据库等多种数据库的备份和恢复方法。这里介绍一种学习中常用的分离/附加方法,

    深入浅析SQL封装、多态与重载 面向对象1.类:众多对象抽象出来的2.对象:类实例化出来的3.类的定义关键字class4.类里面包含成员变量成员属性成员方法5.面向对象三大特性(1)封装

    在Sql Server中调用外部EXE执行程序引发的问题 一、先开启xp_cmdshell打开外围应用配置器—功能的外围应用配置器—实例名DatabaseEnginexp_cmdshell—启用二、解决方法usemasterExecxp_cmdshell'mkdird:csj" class="img-responsive" alt="详解DB2 sqlstate 57016 SQLCODE=-668 原因码 "7"错误的快速解决办法(详解增发万亿国债细节)">

    详解DB2 sqlstate 57016 SQLCODE=-668 原因码 "7"错误的快速解决办法(详解增发万亿国债细节)

  • sql where 1=1的优缺点分析(sql中where语句的写法)

    sql where 1=1的优缺点分析(sql中where语句的写法)

  • Windows无法安装到GPT分区形式磁盘的解决办法(windows无法安装所需的文件,请确保所需的所有文件可用)

    Windows无法安装到GPT分区形式磁盘的解决办法(windows无法安装所需的文件,请确保所需的所有文件可用)

  • mdm.exe是什么进程?mdm.exe是病毒吗?mdm.exe的介绍(mmc.exe是什么)

    mdm.exe是什么进程?mdm.exe是病毒吗?mdm.exe的介绍(mmc.exe是什么)

  • 禁止Win8开始屏幕磁盘被改动的方法(win8怎么禁止弹窗)

    禁止Win8开始屏幕磁盘被改动的方法(win8怎么禁止弹窗)

  • Win10 Mobile Build 14269版截图曝光:脱胎换骨 速度飙升

    Win10 Mobile Build 14269版截图曝光:脱胎换骨 速度飙升

  • unity3d特效延迟播放的脚本问题(unity延迟调用函数)

    unity3d特效延迟播放的脚本问题(unity延迟调用函数)

  • android apk版本更新(android 更新apk)

    android apk版本更新(android 更新apk)

  • 详解python中字典的循环遍历的两种方式(python中字典的方法有哪些)

    详解python中字典的循环遍历的两种方式(python中字典的方法有哪些)

  • 税收的作用是什么
  • 企业出租房产增值税率
  • 货物或应税劳务服务名称怎么填
  • 购买商品加包装后出售账务处理
  • 单位聘请的临时工请假旅游
  • 分配利润和分配股利
  • 单独计价入账的土地是无形资产吗
  • 房屋租赁违法
  • 旧税号开出的发票能认证抵扣吗?
  • 产品成本核算的一般程序
  • 金税三期退税
  • 小微企业免征增值税政策2023
  • 转移性支出与转移性收入相对应主要包括
  • 车不入库扣几分
  • 进的货没有入库怎么处理
  • 公司的汽车购置税怎么交
  • 纳税单位与免税单位共用的房屋由纳税单位全额纳税
  • 公司注销了是不是就不能用了
  • 小企业的费用应当在发生时计入当期损益
  • 上月抵扣的进项税这个月怎么做分录
  • 公户转私户的钱怎么退回来
  • 餐饮业收入的会计分录及摘要
  • ppt文件打不开了怎么办
  • iphone微信透明壁纸怎么设置
  • 冲抵备用金
  • 事业单位工作人员暂行处分办法
  • 递延收益为什么计税基础为0
  • svchost很多进程
  • php integer
  • 企业的做账流程有哪些
  • 个人股份转让
  • 最高成本的手机是哪款
  • 建筑企业跨省经营
  • 附加税申报错误,已缴费,怎么办
  • 应交税费已交税金是什么意思
  • 用友的应付单和付款单的区别各是什么时候填制
  • vmstat命令 监视系统资源状态
  • 什么是其他综合收益,包括哪些内容
  • 营业税金及附加税率
  • 金融资产发生的相关费用计入初始入账金额有那些
  • java中的常量是什么意思
  • 收入纳税退税
  • python id 函数
  • python的协程
  • 设计模式golang
  • 住宿发票规格型号一栏写什么
  • 计算企业所得税分录
  • 抄税是什么时间截止
  • 建筑服务预征缴纳税款期初余额怎么算
  • 子公司向母公司交利润 需要纳税吗
  • 以土地作价投资合伙企业是否缴纳土地增值税
  • 电影剧本稿费多少
  • 存在弃置费用的固定资产有哪些
  • 租赁合同印花税怎么算
  • 劳保统筹费缴费比例
  • 人民币报关退税流程
  • 商业医疗保险的缺点
  • 损益类科目结转本年利润方向
  • 应收账款周转率计算公式
  • 三证合一是哪三证
  • 职工福利费如何计算
  • 记账凭证先写借方还是贷方
  • 银行承兑汇票能拆分背书吗
  • 税种工会经费
  • 纳税筹划有哪些特点以及原则?
  • 主营业务收入是什么意思
  • 用mysql的小技巧
  • 偷天换日角色介绍
  • xp系统如何进入桌面
  • macbookzen
  • python模块和类和方法
  • python将字典转换成字符串
  • Unity3D之Vector3.Dot和Vector3.Cross的使用
  • nodejs实战
  • JavaScript为事件句柄绑定监听函数实例详解
  • 中国进口国外品牌排行榜
  • 化妆品的消费税税率是多少
  • 外省车险保单,有何不利的事
  • 亳州国税局电话号码
  • 房屋维修基金会计分录处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设