2015-05-25 45 views
0

根據其它表的表我有兩個表:更新PostgreSQL中

產品

| id | name  | price | type_id 
------------------------------------ 
| 1 | Product A | 500 | 1 
| 2 | Product B | 600 | 3 
| 3 | Product C | 800 | 15 

類型

| id | price | 
--------------- 
| 1 |  | 
| 3 |  | 
| 15 |  | 

現在我想設置的價格類型表的值爲產品其表具有相應的type_id

因此,在類型表1 => 500, 3 => 600, 15 => 800中給出了type_id在產品表中唯一的事實。

我試着寫像查詢:

UPDATE types SET price = (
    SELECT sub.price FROM (SELECT p.type_id AS id, p.price AS price 
          FROM products p, types t 
          WHERE p.type_id = t.id) AS sub 
    WHERE sub.id = types.id 
) 

但是,查詢沒有得到正常工作,似乎是太複雜了。我應該怎麼做?

回答

1

如果一個類型是由於只有一種產品的最大如此:

UPDATE types set price = products.price 
from products where products.type_id= types.id 
+0

是。我的工作正確。我現在接受你的答案:D – DucCuong