mysql - 来自另一行的条件时 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 行
解决方案
您可以使用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;
这假设每个商店/产品组合有一行。
推荐阅读
- java - 使用 Selenium Java 的 BrowserMobProxy
- algorithm - 如何避免 Firestore 中的 N + 1 个查询?
- javascript - 从 DevTools 控制台调用函数不会触发断点
- javascript - 一次又一次地调用异步函数,直到 Node JS 中的预期结果
- python - 如何将频谱图数据转换为张量(或多维 numpy 数组)?
- java - 在java中读取c ++字节位域
- powershell - Out-FINcodedCommand.ps1 无法识别 - 在当前目录执行脚本
- ms-access - 根据字段值将总和从另一个表中获取到表中
- go - 授权代码流如何返回永久访问令牌?
- r - 使用 knn.res 在 R 中出现“不允许缺失值”错误