我已经看到了反过来的例子(更新了目标主题的最高值的目标表)。
我想更新table_A中具有最高value
的行,其中包含在table_B中找到的数据。两者都有一个共同的指数。
有些表可能会有所帮助。
表A
+-------+----------+---------------+
| index | id_order | product_price |
+-------+----------+---------------+
| 1 | 1 | 10.00 |
| 2 | 1 | 12.00 |
| 3 | 2 | 5.00 |
| 4 | 3 | 4.00 |
+-------+----------+---------------+
表B
+----------+------------------+
| id_order | price adjustment |
+----------+------------------+
| 1 | 4.00 |
| 2 | 1.00 |
| 3 | 2.00 |
+----------+------------------+
表A - POST UPDATE
+-------+----------+---------------+
| index | id_order | product_price |
+-------+----------+---------------+
| 1 | 1 | 10.00 |
| 2 | 1 | 8.00 |
| 3 | 2 | 4.00 |
| 4 | 3 | 2.00 |
+-------+----------+---------------+
因此第2行(第1阶段的最高值)已应用调整,但第1行保持不变。第3行和第4行均按其尊重值进行调整,因为它们是单身。
答案 0 :(得分:0)
UPDATE a
SET value = (
a.value - (
SELECT value
FROM b
WHERE b.id = a.id
)
)
WHERE a.id = 1
ORDER BY value DESC LIMIT 1
现在一切都应该是你想要的,这是将表a中的值设置为id = 1到它的值减去表中的值,其中id也是1。