专栏首页听雨堂update的多表更新的试验

update的多表更新的试验

        受access的sql语句的影响,一直习惯的是用 update (连接表) set ... where ...,坏处是写起来很复杂,别名一大堆,事后自己都看不懂。

发现还其实可以直接就可以对多表更新

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对全连接的结果进行了限制)。对某列的更新操作,在该列值有多行时,只有最后一行生效。

了解了工作方式,就可以大胆应用了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .Net中DES加密的细节问题

    一般的做法和MSDN都差不多,都是这种方式   加密:byte[]--write-->ms   解密:ms--read-->byte[]   即创建CryptS...

    用户1075292
  • 子分类的合计

            Groupby可以进行分类的合计,如果要进一步进行子分类的合计并在一行显示,关键问题是分类的字段如何被子查询使用。我试了一些办法,觉得这样可行,...

    用户1075292
  • Android新手之旅(11) 在现有页面中插入新的view

      一些特定的情况下,无法用静态的方法定义页面中用到的view。如自定义的曲线图,就是一个独立的view,要把它作为一个部分插入到页面中,需要以下的方法: Li...

    用户1075292
  • coursera机器学习算法课: 异常检测 & 推荐系统

    这部分内容来源于Andrew NG老师讲解的 machine learning课程,包括异常检测算法以及推荐系统设计。异常检测是一个非监督学习算...

    机器学习AI算法工程
  • 【Golang】链表翻转,Golang实现

    无道
  • 【Omron】视觉校准与补偿的流程设置

    EdenChen
  • 【RAPID】中断程序详讲

    thank you~

    EdenChen
  • SQL Tuning 基础概述06 - 表的关联方式

    驱动表和被驱动表都是最多访问1次,无驱动顺序,需要排序(SORT_AREA_SIZE),连接条件是<>或like导致无法使用。

    Alfred Zhao
  • 基于 CentOS 搭建 WordPress 个人博客

    腾讯云提供了开发者实验室帮助用户搭建 WordPress 个人博客,教程内容如下,用户可以点击开发者实验室快速上机完成实验。

    小Q
  • 服务器搭建WordPress个人博客网站

    WordPress 是世界上使用最广泛的博客系统之一,是一款开源的PHP软件。有丰富的插件模板资源,使用WordPress可以快速搭建独立的博客网站。

    小雨编程

扫码关注云+社区

领取腾讯云代金券