2014-02-14 40 views
1

我試圖做類似如下:Postgres - 如何在更新子查詢中引用外部表?

UPDATE table1 
SET table1.nearest_city_id = subquery.id 
FROM 
    (SELECT id FROM cities ORDER BY cities.location <-> table1.location LIMIT 1) 
    AS subquery; 

即設置在基於空間查詢表1最近的城市..

但我不能引用我行在子查詢中更新。任何方式在這個?

+0

@a_horse_with_no_name是的,我同意:已刪除。 – Houari

回答

3

事情是這樣的:

UPDATE table1 
    SET nearest_city_id = (select id 
         from cities c 
         ORDER BY c.location <-> table1.location 
         LIMIT 1); 
1

如果你需要一個條件由表2的1列更新表1的第1列:

UPDATE Table1 
SET Table1.Column = A.Column 
     FROM(SELECT Column,Id FROM Table2) As A 
WHERE Table1.Id=Table2.Id 
相關問題