如何将A、B两个表求的的结果更新到C表中去?    数据库有3个表,分别是A、B、C    A有3个列,是a地、a金、a号;
    B有1个列,是b地;
    C有2个列,是c金、c号    我需要把根据A、B两个表选择出来的a金更新到C表中的c金,条件是a号=c号    下面是我大致写的代码,不清楚错误出在何处,具体该怎么写呢?
update C
set c金=
(
    select a金
    from A join B on A.a地=B.b地
)
where c号=a号

解决方案 »

  1.   

    UPDATE
        C
    SET 
        c金 = b.a金
    FROM
        ( SELECT
            a金 ,
            a号
          FROM
            A
            JOIN B ON A.a地 = B.b地
        ) b
    WHERE
        c号 = b.a号
      

  2.   

    update C
    set c金=
    (
        select a金
        from A where A.a号=C.c号
    )
    from C
    不需要B表
      

  3.   

    UPDATE  C
     SET     C.c金 = A.a金
     FROM    C
             INNER JOIN ( SELECT A.a金
                          FROM   A a
                                 INNER JOIN B b ON A.a地 = B.b地
                        ) A ON C.c号 = A.a号
     写法有多种,不用拘谨于一种
      

  4.   

    的确的多上论坛上面看看,第一次到论坛,习惯DBA_Huangzj的方法,