合并两个表并更新一个属性WHERE

时间:2015-04-07 12:38:42

标签: sql postgresql

我有两张桌子看起来像这样:

游戏(名称,制作者,年份);

费用(姓名,身份证,价格,玩家);

我想更新拥有制造商'微软'的游戏的价格。

感谢任何帮助。

我认为方法是合并名称相同的两个表,然后更新Fees.price,其中Maker = Microsoft。但我不确定如何做到这一点。

我相信@SheldonNeilson和@Gordon Linoff的答案都有效,但我只能给一个复选标记。

2 个答案:

答案 0 :(得分:3)

如果您想将所有Microsoft游戏的价格降低10%,那么您可以使用:

update fees
    set price = price * 0.9
    where name in (select g.name from games g where g.maker = 'Microsoft');

请注意,这是标准语法应该适用于任何数据库。

答案 1 :(得分:2)

UPDATE fees
   SET fees.Price = fees.Price * 1.1
  FROM Fees fees
  JOIN Games games
    ON games.Name = fees.Name
 WHERE games.Maker = 'Microsoft'