mysql更新表与另一个表的值?

时间:2015-02-24 15:09:37

标签: mysql

我正在尝试使用其他表'supplier_change_request'中的值更新我的表'supplier_stats'。

我的两张表如下所示:

Supplier_change_request

id   |   user_id   |   company_name   |   supplier_number
1        123           hewden             V0001

Supplier_stats

Id | user_id | company_name  |  address  |   reference   | supplier_number
1    123       pie              n/a          12345         V0001
2    145       gates            n/a          12345         V0002

这是我的MySQL:

$ reference ='12345'

$query = "UPDATE supplier_stats 
SET supplier_stats.company_name = (
    SELECT supplier_change_request.company_name 
    FROM supplier_change_request
    WHERE supplier_change_request.reference = '$reference' AND supplier_change_request.supplier_number = supplier_stats.supplier_number";
mysql_select_db('hewden1');
$retval = mysql_query( $query, $conn )

根据我的计算,这应该是在我的表'supplier_stats'中将supplier_number'V0001'设置为'hewden'的company_name的值。但是,company_name未更新。

有人可以告诉我哪里出错了吗?提前谢谢

1 个答案:

答案 0 :(得分:0)

我认为查询中的语法有点偏差,它看起来应该是这样的(只是SQL,根据需要适应PHP):

UPDATE supplier_stats ss
JOIN supplier_change_request scr ON scr.supplier_number = ss.supplier_number
SET ss.company_name = scr.company_name 
WHERE ss.reference = '$reference' 

reference指向示例查询中的supplier_change_request,但指向示例数据中的supplier_stats - 我认为示例数据是正确的;如果没有改变。

此查询应将company_name中的supplier_statspie更改为hewden