根据表B中的列设置表A中的SQL列

时间:2013-08-30 17:38:24

标签: sql postgresql sql-update

我只是不能正确地理解这种语法。表'clients'有一个points_per_month列。表'usage'有一个'available'列和一个'client_id'列。我基本上想要重写可用值以匹配points_per_month值。我试过这个:

update usage
set available = c.points_per_month
from usage u
inner join clients c on u.client_id = c.ident;

但是这会将所有可用值设置为完全相同的数字(返回的第一个客户端的points_per_month)

2 个答案:

答案 0 :(得分:0)

尝试类似

的内容
update usage u
set available = c.points_per_month
from clients c 
where u.client_id = c.ident;

答案 1 :(得分:0)

使用子选择作为赋值的经典方法应适用于每个数据库:

update usage
set available = (select c.points_per_month
                   from clients c
                  where usage.client_id = c.ident
);