2013-07-11 84 views
0
UPDATE Customer C 
SET name = B.name, 
age = B.age 
FROM (SELECT A.*, B.* FROM CUSTOMER_TEMP WHERE A.ID = B.ID) AS B 

我得到了一个SQL如上,我运行查询后,它将我所有的行更新为相同的结果。Postgresql更新与子查询

我不知道我需要

UPDATE Customer C 
SET name = B.name, 
age = B.age 
FROM (SELECT A.*, B.* FROM CUSTOMER_TEMP WHERE A.ID = B.ID) AS D 
WHERE C.ID = D.ID 

经过这里,但我得到这个ID是模糊的最后查询。

回答

0

试试这个

update Customer set 
    name = B.name, 
    age = B.age 
from Customer as C 
    inner join CUSTOMER_TEMP as B on B.ID = C.ID 

SQL FIDDLE EXAMPLE