zoukankan      html  css  js  c++  java
  • Oracle SQL——如何用一个表的数据更新另一个表中的数据

    背景

    • 一次处理数据的过程中,需要将表A(源表)的数据更新到表B(目标表)中

    前提

    • 两张表一定要有关联字段
    • 使用关联字段联查两张表时,两张表关系必须满足条件:目标表和源表的表间关系一定是多对一或者一对一

    使用

    • 基本SQL如下
      update tableA A set A.val = (select val from tableB B where A.idd = B.idd);

    扩展

    • 如上SQL中的tableB可以替换成任意一个子查询,典型的是源表和目标表是同一张表,SQL可以扩展如下
      update tableA A set A.val =select C.val from (select B.val as val,B.idd as idd from tableA B where A.idd=B.idd) C where A.idd=C.idd;
    • 报错
      • 错误:ORA-01427:单行子查询返回多个行
      • 原因:当前关联条件下,子查询返回多条数据,导致目标表和源表的表间关系成为一对多,导致报错
    • Next
  • 相关阅读:
    #张祖德#
    不说啥,放题
    ……
    点群的判别(四)
    lougu P4180 【模板】严格次小生成树[BJWC2010]
    20190227模拟
    20190226模拟
    Triangles
    Darling
    Suspenseful
  • 原文地址:https://www.cnblogs.com/zuiyue_jing/p/11839472.html
Copyright © 2011-2022 走看看