zoukankan      html  css  js  c++  java
  • 【SQL】sql update 多表关联更新方法总结

    #表结构:

    1、表一:Test1

    Id name age
    1    
    2    

    2、表二:Test2

    Id name age
    1 小明 10
    2 小红 8

    #实现将表Test2的name和age字段数据更新到表Test1中,按照id相等的条件

    1、SQLServer多表更新方法:

    语法:

    UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } 
    SET { column_name = { expression | DEFAULT | NULL } | @variable = expression | @variable = column = expression } [ ,...n ] 
    { { [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ] } | [ WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } [ OPTION ( < query_hint > [ ,...n ] ) ]

     例子:

    update test1
    set test1.name=test2.name,test1.age=test2.age
    from test1 
    inner join test2
    on test1.id=test2.id

    2、Oracle 多表更新方法:

    语法:

    UPDATE updatedtable 
    SET (col_name1[,col_name2...])= (SELECT col_name1,[,col_name2...] 
    FROM srctable [WHERE where_definition])

    例子:

    update test1 
    set (test1.name,test1.age)=
    (select test2.name,test2.age from test2 where test2.id=test1.id)

    3、MySql多表更新方法:

    语法:

    UPDATE table_references 
    SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

    例子:

    update test1,test2 
    set test1.name=test2.name,test1.age=test2.age
    where test1.id=test2.id

    4、通用方法:(*^__^*) 

    update test1 
    set name=(select name from test2 where test2.id=test1.id),
    age=(select age from test2 where test2.id=test1.id)

    ———————————————————————————————————————————————————

  • 相关阅读:
    FJNU 1151 Fat Brother And Geometry(胖哥与几何)
    FJNU 1157 Fat Brother’s ruozhi magic(胖哥的弱智术)
    FJNU 1159 Fat Brother’s new way(胖哥的新姿势)
    HDU 3549 Flow Problem(最大流)
    HDU 1005 Number Sequence(数列)
    Tickets(基础DP)
    免费馅饼(基础DP)
    Super Jumping! Jumping! Jumping!(基础DP)
    Ignatius and the Princess IV(基础DP)
    Keywords Search(AC自动机)
  • 原文地址:https://www.cnblogs.com/willingtolove/p/10792713.html
Copyright © 2011-2022 走看看