更新具有相同ID的不同表中的所有值

时间:2013-08-31 18:28:16

标签: php mysql

我有两个名为salesrsales

的表

我对表sales

有这个ff值
id | pcode | total | discount |
2  |  33   |  100  |   20     |
3  |  33   |  100  |   20     |

我对表rsales

有这个ff值
id | pcode | total | discount | sales_id |
4  |  33   |  100  |   20     |    1     |
5  |  33   |  100  |   20     |    2     |
6  |  33   |  100  |   20     |    3     |

我的问题是,当我更新表格sales中的所有值时,如果rsales等于sales.id,则必须更新表格sales_id。 例如,如果我使用sales = 2和3更新了表id,则sales_id中的rsales 2和3也必须更新。
请注意:只有2和3,因为只有表id sales中找到id 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'");

1 个答案:

答案 0 :(得分: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'

注意:我没有测试过。