SQL 当条件来自另一行时更新 table

SQL update table when condition from another row

如何将这个架构加在一起?

update ps_product_shop set price.2=price.1/25.5 where id_product = *the_same* 
price.1 -> id_shop=1
price.2 -> id_shop=2
id_product -> the same for both shops

它在 prestashop 中,table 有价格。在 table ps_product_shop 中,我在第 1 行 id_shop = 1 和第 2 行 id_shop=2

我需要更新两个不同货币商店的价格。

从 id_shop=1 中取 "price",除以 25.5(捷克克朗/欧元)并将其设置为 id_shop=2

的价格

我是 Oracle 数据库管理员之前的几年,但我现在不在这个行业...:)

谢谢。科曼奇

更新: 它是 mysql,我在线程开始时将它标记为 MySQL...

在table,

行....id_product.....id_shop..价格

行 1...12.........1.......500

行 2...12......................2.......8

我需要用 price/25.5

更新第 2 行

您可以使用 join。如果我理解正确的话:

update ps_product_shop ps2 join
       ps_product_shop ps1
       on ps1.id_product = ps2.id_product and
          ps1.id_shop = 1 and ps2.id_shop = 2
    set ps2.price = ps1.price / 25.5;

这假设每个 shop/product 组合有一行。

您可以在 MySql 中使用下面的查询。由于两个商店的 id_product 相同,因此需要在更新查询中使用连接查询。

update ps_product_shop pps1 join ps_product_shop pps2
on pps1.id_product = pps2.id_product
set pps2.price = pps1.price/25.5 where pps2.id_shop='2';