我在练习SQL,请问如果我有两个表A和B如下:
A:ID,Amount
B:ID,Amount_2
我想实现,如果A.ID=B.ID set Amount2=Amount,同时A.ID不在B里就把A的记录插入的B表里。
请问这个过程语句应该怎么写?谢谢!

解决方案 »

  1.   

    INSERT INTO B(ID,Amount_2)
    SELECT a.ID,0
    FROM A LEFT JOIN B ON a.ID=b.ID
    WHERE b.ID IS NULLUPDATE B
    SET    Amount_2=a.Amount
    FROM   B ,A
    WHERE  B.ID=A.ID
      

  2.   

    update b set Amount2=Amount from a,b where A.ID=B.ID 
      

  3.   


    UPDATE B
    SET B.Amount2=A.Amout
    FROM A,B
    WHERE A.ID=B.IDINSERT INTO B(ID,Amount2)
    SELECT A.ID,A.Amount
    FROM A
    WHERE A.ID NOT IN (SELECT B.ID FROM B)
      

  4.   

    UPDATE B
    SET B.Amount2=A.Amout
    FROM A,B
    WHERE A.ID=B.IDINSERT INTO B 
    SELECT *
    FROM A
    WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.ID = ID)
      

  5.   

    勘误 :3楼第三行,即:SET B.Amount2=A.Amout
    拼写错误,应该是Amount,少了一个n.
      

  6.   

    update B
      set Amount_2=a.Amount
    from   
      B
    inner join
      A
    on
      B.ID=A.IDinsert into B(ID,Amount_2)
    select a.ID,Amount
    from  A 
    left join B 
    on a.ID=b.ID
    where b.ID IS NULL
      

  7.   


    insert into A 
    select B.id,B.Amount_2 from B not exists
    (select * from A where A.id=B.id) 
    ----------
    update A set Amount2=Amount from B inner join A on A.id= B.id