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

  • 相关阅读:
    windows下安装redis
    关于 tomcat 集群中 session 共享的三种方法
    利用Nginx做负载均衡
    Spring4 MVC Hibernate4集成
    <mvc:annotation-driven />到底帮我们做了啥
    Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
    JPA注解指南
    Hibernate与Jpa的关系
    ActiveMQ实现负载均衡+高可用部署方案
    信号接口-视频输出端口介绍
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/2012889.html
Copyright © 2011-2022 走看看