首页 > 解决方案 > 来自另一行的条件时 SQL 更新表

问题描述

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

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 中,有价格表。在表 ps_product_shop 中,我在 row1 id_shop = 1 和 ond row2 id_shop=2

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

从 id_shop=1 中获取“价格”,除以 25.5(捷克克朗/欧元)并将其设置为 id_shop=2 的价格

我比 Oracle 数据库管理员早了几年,但我现在不做生意了...... :)

谢谢你。科曼奇

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

在表中,

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

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

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

我需要用 price/25.5 更新第 2 行

标签: mysqlsqlprestashop

解决方案


您可以使用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;

这假设每个商店/产品组合有一行。


推荐阅读