2013-08-31 136 views
-1

我有兩個表名爲salesrsales更新來自不同表中的所有值具有相同的id

我有表sales

id | pcode | total | discount | 
2 | 33 | 100 | 20  | 
3 | 33 | 100 | 20  | 

該FF值,我有表rsales

該FF值
id | pcode | total | discount | sales_id | 
4 | 33 | 100 | 20  | 1  | 
5 | 33 | 100 | 20  | 2  | 
6 | 33 | 100 | 20  | 3  | 

我的問題是,當我更新表sales的所有值時,表如果sales.id等於sales_id,則必須更新。
因此,例如如果我已更新表salesid = 2和3,sales_id 2和3從rsales必須更新。
注意:只有2和3,因爲只有id s在表salesid s中找到。

我有這個ff代碼到目前爲止更新表rsales。但輸出結果並不像我的意思。它更新所有值。

mysql_query("UPDATE sales AS t1, rsales AS t2 
    SET t1.total = '$total_discount', 
    t2.total = '$total_discount', 
    t2.discount = '$tot' 
    WHERE t1.pcode = '$pcode'"); 
+0

Obligatory:[我怎樣才能防止在SQL注入PHP?](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)和[爲什麼shouldn' t我在PHP中使用mysql_ *函數?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – 2013-08-31 18:30:26

+0

你缺少我最後一個答案的部分: P – Jason

+0

如果$ pcode的值爲33,並且你的列的pcode只有33的值,那麼你的數據庫是正確的...... –

回答

0

您應該在WHERE類中添加表格之間的公共列。

UPDATE sales AS t1, rsales AS t2 
    SET 
    t1.total = '$total_discount', 
    t2.total = '$total_discount', 
    t2.discount = '$tot' 
WHERE 
    t1.id = t2.sales_id AND 
    t1.pcode = '$pcode' 

注:我沒有測試過它。

相關問題