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';
如何将这个架构加在一起?
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';