-1

"sales" と "rsales" という名前の 2 つのテーブルがあります。

そして今、私は「販売」からこのffデータを持っています

id | pcode | total | 
2  |  122  |  20   |  
3  |  122  |  20   | 
4  |  321  |  30   |
5  |  321  |  30   |

pcode,total,discount が重複している理由は不思議ではありません。単純に、「注文を追加」するか送信ボタンをクリックすると、上に示したように「売上」テーブルに保存されるからです。私のtblの「売上」を更新する方法をあなたと共有するこのコードがあり、それは非常にうまく機能します。私がしたことは、IDを取得することです。たとえば、「sales」からID「1」を取得すると、その下でクエリを実行すると、ID「1」だけでなくID「2」も更新されます。これらは同じ「pcode」であるため、クエリには明らかです。tbl「sales」の更新に問題はありません

mysql_query("UPDATE sales SET total = '$total_discount' where pcode = '$pcode' "); 

だから私の問題はこれです私は私のtbl "rsalesを更新するためにこのffコードを持っています

   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 で「total」を「sales」から更新するとします。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」から「合計」を正確に更新できません。助けてください。すべてのヘルプは非常に役に立ちます。

id | pcode | total | sales_id|
2  |  122  |  40   |  2      |
3  |  122  |  40   |  3      |
4  |  321  |  40   |  4      |
5  |  321  |  40   |  5      |
4

1 に答える 1

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は、フィールドの IN (One Of)を更新すると言っていsales.idます。あなたはすべてsales.idのを引っ張っています。具体的にどの ID を指定する必要がある場合は、これを上記のクエリの最後に追加します。

AND t1.id = '$id'
AND t2.sales_id = t1.id

DB のモックアップを作成していないため、テストしていません。

于 2013-08-31T17:03:27.487 に答える