2015-02-24 42 views
0

我想用我其他表'supplier_change_request'中的值更新我的表'supplier_stats'。mysql更新表與其他表中的值?

我的兩個表如下所示:

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:

$基準= '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) 

通過我的計算,應該將company_name的值設置爲我的表'supplier_stats'中的supplier_number爲'V0001'爲'hewden'。但是company_name沒有被更新。

有人可以告訴我我要去哪裏嗎?謝謝你在前進

+0

我看不到表中的任何列supplier_change_request.reference – 2015-02-24 15:16:58

+0

**警告**:如果您只是學習PHP,請不要學習過時的'mysql_query'界面。這很糟糕,並且在未來版本的PHP中被刪除。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南可以幫助解釋最佳實踐。永遠絕對**肯定**你的用戶參數[正確逃脫](http://bobby-tables.com/php),否則你會有嚴重的[SQL注入漏洞](http://bobby-tables.com/ )。 – tadman 2015-02-24 15:22:43

回答

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_namesupplier_statspie更改爲hewden