我正在尝试使用其他表“supplier_change_request”中的值更新我的表“supplier_stats”。
我的两个表如下所示:
供应商变更请求
id | user_id | company_name | supplier_number
1 123 hewden V0001
供应商统计
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”中的 company_name 的值设置为“hewden”,其中,supplier_number 为“V0001”。但是,company_name 并未更新。
有人可以告诉我哪里出错了吗?预先感谢您
最佳答案
我认为您的查询中的语法有点不对劲,它应该看起来像这样(只是 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
- 我假设示例数据是正确的;如果没有就改变。
此查询应将 supplier_stats
中的 company_name
从 pie
更改为 hewden
。
关于mysql 使用另一个表中的值更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699311/