我有2个名为“sales”和“rsales”的表,
现在我有来自“sales”的这个ff数据
id | pcode | total |
2 | 122 | 20 |
3 | 122 | 20 |
4 | 321 | 30 |
5 | 321 | 30 |
不要错过为什么我有重复的pcode,总数,折扣,这只是因为当我“添加订单”或点击我的提交按钮时,它就像我上面所说的那样以这种方式保存到“销售”。我有这个代码与你分享如何更新我的tbl“销售”,它的效果非常好。我做的是我得到了身份证。比方说,例如我从“sales”获得id“1”,所以当我在下面运行我的查询时,它更新id“1”而且id“2”,因为它们是相同的“pcode”,这对我的查询来说是显而易见的。我没有问题更新我的“销售”
mysql_query("UPDATE sales SET total = '$total_discount' where pcode = '$pcode' ");
所以我的问题是我有这个ff代码更新我的tbl“rsales
mysql_query("UPDATE rsales SET total = '$total_discount' ,discount = '$tot' WHERE rsales.sales_id IN (SELECT sales.id FROM sales)");
我想要的是,当我在我的tbl“sales”中更新特定的pcode时,tbl“rsales”也必须更新。所以,举个例子,我可以通过pcode 122更新“sales”中的“total”,所以从20开始我将它改为40,所以我的tbl“rsales”必须看起来像这样
id | pcode | total | sales_id|
2 | 122 | 40 | 2 |
3 | 122 | 40 | 3 |
4 | 321 | 30 | 4 |
5 | 321 | 30 | 5 |
但我的查询显示了这个结果。 allvrows updates.i无法更新“rsales”中的“total”请帮助我。每一个帮助都非常有帮助。
id | pcode | total | sales_id|
2 | 122 | 40 | 2 |
3 | 122 | 40 | 3 |
4 | 321 | 40 | 4 |
5 | 321 | 40 | 5 |
答案 0 :(得分:0)
请尝试以下方法。另外,根据您的表格布局,您错过了discount
列,我假设它在测试数据库中。
UPDATE sales AS t1, rsales AS t2
SET t1.total = '$total_discount',
t2.total = '$total_discount',
t2.discount = '$tot'
WHERE t1.pcode = '$pcode'
AND t2.pcode = t1.pcode
顺便说一下,由于这一行,你正在修改所有行:
WHERE rsales.sales_id IN (SELECT sales.id FROM sales)
在此,您要更新rsales
,其中sales_id
是sales.id
字段的IN(其中一个)。你拉了所有sales.id
。如果您需要具体指定ID,请将其添加到上面查询的底部:
AND t1.id = '$id'
AND t2.sales_id = t1.id
没有模拟你的数据库,所以我没有测试过它。