位置: 编程技术 - 正文

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

编辑: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如何使用)

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

  • 随机赠送礼品个人所得税
  • 土增税税率和速算例题
  • 成本票有哪些种类
  • 建筑公司可以开机械租赁发票吗
  • 单一环节征税有哪些类型
  • 金税盘忘了清盘怎么办
  • 事业单位补发以后的工资
  • 劳动保险费属于营业外支出吗
  • 工伤医疗费全赔吗
  • 结存材料物资会计分录怎么做?
  • 企业收回以前注销时的坏账准备余额怎么处理?
  • 企业丢失账簿稽查局可以处罚吗
  • 主营业务成本属于
  • 分公司借款给总公司
  • 公司购买银行理财产品会计分录怎么写
  • 开出增值税发票没收到怎么抵扣进项税?
  • 软件企业产品如何销售
  • 月末利润分配的账务处理
  • 员工离职再入职要重新签订合同吗
  • 小型微利企业预缴
  • 平均净资产计算公式是什么意思
  • 日用品做账时放什么东西
  • 激活windows11怎么激活
  • 工厂院子里的地图怎么画
  • 长期借款利息如何做账
  • 美团佣金收费标准结构图
  • thinkphp 3.2.3 getshell
  • 采购原材料合理化建议
  • 固定资产进项税额一次性抵扣
  • 我整理的邪恶铭刻所有卡牌及自制卡
  • 高新技术企业如何在电子税务局备案
  • PHP:imagecreatefromwebp()的用法_GD库图像处理函数
  • 企业所得税会计利润
  • php实现二叉树
  • 车间使用的辅助材料
  • iscan扫描仪使用方法
  • HTTP Tunneling (HTTP Proxy Socket Client)
  • 小规模纳税人定义
  • 滴滴票可以抵扣吗?
  • 定期定额自行申报表
  • 资源税申报怎么操作
  • 劳动报酬收入包含什么
  • 政府对企业提交的项目申请报告主要从等方面进行核准
  • 储值卡金额算什么资产
  • 物流公司挂靠会计处理?
  • 现金比率升高
  • 有限合伙企业需要缴纳企业所得税吗
  • 其他货币的账面价值包括
  • 营业外收入的核算内容
  • 收到销售折让的负数发票怎么做会计分录
  • 购买不良债权如何追偿
  • 残保减免金政策
  • 公司开办期间的住宿费会计分录
  • 金税盘维护费抵减分录
  • 成本类科目借贷规则
  • 公司流水账怎么做
  • mysql优化的几种方法
  • mysql连接问题
  • 通过备份记录获取文件
  • sqlserver字符串切割
  • 使用灭火器时要对准火焰的什么部位喷射
  • mac文件权限
  • 苹果mac系统休眠怎么解除
  • 手把手教您安装软件
  • 关于linux操作系统的描述中
  • win7免费升级永久win8
  • windows10 不能启动
  • cocos设计模式
  • javascript入门教程
  • cocos2dx安装win7教程视频
  • unity双击
  • 控制台报错是前端问题吗
  • 如何让卖家给你乖乖退款
  • easyui搜索框
  • 批处理 /a
  • jQuery实现磁力图片跟随效果完整示例
  • jquery的css方法
  • 防伪开票系统操作流程
  • 7.1税务新政策
  • 西安市人力资源和社会保障局关于2020年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设