表A

ID

NAME

AGE

SEX

BOOK

1

小丑1

12

数据结构

2

小丑2

22

人工智能

表B

ID

AGE

SEX

COMPUTER

1

00

applet

2

00

thinkpad

根据表A更新表B中的AGB 和SEX

SQL:

1 updateB b2 set(AGB,SEX)3 =(select AGB,SEX fromA a4 where a.ID=b.ID and COMPUTER=‘applet‘)5 where exists

6 (select 1 fromA a7 where a.ID=b.ID and COMPUTER=‘applet‘) and NAME like ‘小丑%‘ ;

说明:

工作中涉及到了这种需求(关联表更新),所谓关联表更新就是在更新一张数据库表时,需要另外一张表的数据。那么怎样把数据库表中数据更新到另外一张上呢?

这就涉及到了数据表关联。要想把两张表关联到一起就需要找到这两张表的相同属性。就像一对情侣,两个人称得上是情侣,那肯定有很多共同点,甚至连性别都是一样的(开个玩笑)。

下面说明一下这条sql 语句的意思,首先update 是更新,据我目前看来update 后面只许放一张表,也就是说update 只能更新一张表。这是重点,我之前还想着同时更新两张表,这是不可能的。

set  就没必要解释了,set 后面括号里可以加入任意个数据库字段。where  a.ID=b.ID 这是这句sql 语句的核心,用A表中的ID 与B表中的ID进行关联。同时被关联表A 也可以加入自己的where 条件。3至4行的整体意思是从被关联表A中查找AGB,SEX字段更新到表B中。

where  exists 要细致的说明一下:

(select 1 from A a where a.ID=b.ID and COMPUTER=‘applet‘)

where exists 后面必须加括号 ,这句sql 语句的意思是 筛选出 符合a.ID=b.ID and COMPUTER=‘applet‘的所有A中的字段值。A中ID 也可关联B中别的属性,这是不受限制的。

有时候不希望把B 中所有符合a.ID=b.ID and COMPUTER=‘applet‘ 条件的(AGB,SEX)全部更新,你也可以在后面加上B表的属性条件。比如上述的   Name like ‘小丑%’。

这句sql 的整体意思是符合在A中ID 等于B中ID 并且 COMOUTER等于‘applet‘的AGB,SEX更新到符合 B表中 NAME 前两个字节为小丑的(AGB,SEX)字段。

原文:https://www.cnblogs.com/JOKER2255/p/14582541.html

oracle里update+where,Oracle 关联表更新 update ,where exists相关推荐

  1. [K/3Cloud] KSQL 关联表更新字段Update语法

    关联表更新字段 UPDATE tmp369faa3f7d224b0595670425008 as t1 SET FStatus=-1 where exists(select 1 from t_BD_S ...

  2. php分享(三十六)mysql中关联表更新

    一:关联不同的表更新 1: 通过where关联更新 update student s, city c set s.province_name = c.province_name, s.city_nam ...

  3. 两表关联更新 mysql_MySQL多表更新(关联表更新)

    在开发过程中,有时会遇到需要将某张表的字段值根据条件动态地更新到另一张表字段的问题,即通过一张表的字段修改另一张关联表中的内容.比如,存在两张表A(表名:test_a).B(表名:test_b),他们 ...

  4. oracle里面的nvl,oracle中nvl函数

    最近在修改项目中一个统计的bug,统计出的钱数不对,因为不是自己开发的模块,经过分析流程找到了统计的sql. sum(f_msmoney)+sum(f_fkmoney) as total, 上面这段是 ...

  5. oracle里minis用法,Oracle初学者必知的39个问题

    Oracle初学者必知的39个问题 作为oracle新手,可以把这39个问题先看一遍,在刚开始使用oracle的时候,可以少些困惑,多些方便. 1. Oracle安装完成后的初始口令? interna ...

  6. oracle里的定时器,oracle中创建定时器

    --创建定时器 CREATE OR REPLACE PROCEDURE P_TEST_JOB IS --判断任务是否已被创建,若任务被创建过,则 isExist > 0 isExist NUMB ...

  7. oracle里的concat,oracle 中的 CONCAT,substring ,MINUS 用法

    有的时候,我们有需要将由不同栏位获得的资料串连在一起.每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + C ...

  8. oracle里的listagg,oracle中的listagg函数

    listagg()用于字符串聚集 LISTAGG(XXX--要合并的列,XXX--分隔符) WITHIN GROUP( ORDER BY XXX) over(partition by XXX) 需要注 ...

  9. oracle与sqlserver差异,Oracle与SQLServer的SQL语法差异总结

    Oracle与SQL Server应用差异对比分析 Oracle 10g 项目 存储过程格式 存储过程名(参数列表) IS Begin ---存储过程内容 End 存储过程名; 备注 CREATE O ...

最新文章

  1. 使用 pm2-web 监控 pm2 服务运行状态
  2. php word组件使用方法,快速解决PHP调用Word组件DCOM权限的问题讲解
  3. Docker Review - 图形化工具 Portainer
  4. caffe源码分析:layer.hpp分析
  5. Java开发经典面试题分享,建议收藏
  6. 数字统计2(依然是数组下标法)
  7. 用Itextsharp 组件导出PDF 的文档的方法
  8. 远离客户陷阱小故事 转
  9. 史上最全!计算机科学领域顶会最佳论文大合集:微软研究院最多,清华排24...
  10. android webview_在 Flutter 中使用 WebView
  11. 平面图设计软件测试自学,CAD平面自学网教程
  12. maven与ant的区别
  13. 12-Python3 元组
  14. 扫雷游戏详解——附源码
  15. Max Script|控制摄像机
  16. ps|grep命令详解
  17. 【AI视野·今日CV 计算机视觉论文速览 第154期】Wed, 4 Sep 2019
  18. GRE阅读的突破方法——集中突破法
  19. iOS 14上全面屏iPhone的状态栏高度
  20. 制作一个四轮四驱底盘【内附资料下载链接】

热门文章

  1. A new deep transfer learning network based on convolutional auto-encoder for mechanical fault diagno
  2. 原生js实现星级评分
  3. shell中base64编解码的使用
  4. Tableau 群集部署
  5. adblockplus简单介绍
  6. 比“跳一跳”好玩100倍的小游戏
  7. Classification分类学习
  8. Playwright + Python爬虫
  9. 数据分析中常见的存储方式
  10. ae制作小球轨迹运动_AE教程AE特效:教你如何用AE创建一个弹跳运动的小球特效...