zoukankan      html  css  js  c++  java
  • sql update多表关联

    一、建立测试表
    CREATE TABLE t_user (
    ID int identity PRIMARY KEY,
    UserID varchar(50) not null,
    UserName varchar(50) null,
    deptID int not null,
    phone varchar(50) null,
    fax varchar(50) null
    )

    CREATE TABLE t_dept (
    ID int identity PRIMARY KEY,
    DeptName varchar(50) null,
    phone varchar(50) null,
    fax varchar(50) null
    )

    INSERT t_user
    SELECT N'001',N'张三',1,N'88888001',N'99999001'
    UNION  ALL SELECT N'002',N'李四',2,N'88888002',N'99999002'
    UNION  ALL SELECT N'003',N'王五',2,N'88888003',N'99999003'
    UNION  ALL SELECT N'004',N'赵六',3,N'88888004',N'99999004'

    INSERT t_dept
    SELECT N'开发部',N'88888011',N'99999011'
    UNION  ALL SELECT N'市场部',N'88888022',N'99999022'
    UNION  ALL SELECT N'售后部',N'88888033',N'99999033'

    二、sql更新(每次执行update后都还原t_user数据)

    1、update t_user set u.phone=d.phone, u.fax=d.fax from t_user u, t_dept d where u.deptID=d.ID

    报错:无法绑定由多个部分组成的标识符 "u.phone"。
    2、update u set u.phone=d.phone, u.fax=d.fax from t_user u, t_dept d where u.deptID=d.ID

     

     正确

    select * from t_user

     

     ID  UserID  UserName  deptID  phone  fax
     1  001  张三  1  88888011  99999011
     2  002  李四  2  88888022  99999022
     3  003  王五  2  88888022  99999022
     4  004  赵六  3  88888033  99999033

     

     

    3、update t_user u set u.phone=d.phone, u.fax=d.fax from t_dept d where u.deptID=d.ID

    报错:'u' 附近有语法错误。

    4、update t_user set phone=d.phone, fax=d.fax from t_dept d where deptID=d.ID

    正确,结果同2

  • 相关阅读:
    【luogu P1073 最优贸易】 题解
    【luogu P2919 [USACO08NOV]守护农场Guarding the Farm】 题解
    【luogu P3946 ことりのおやつ】 题解
    【luogu P3393 逃离僵尸岛】 题解
    ubuntu问题: 同时只能有一个软件管理工具在运行
    Windows server 2008 r2 开启Aero
    windows8.1安装之后的感想
    20条Linux命令面试问答
    9个常用iptables配置实例
    Linux SSH安全技巧
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/2012889.html
Copyright © 2011-2022 走看看