2013-02-27 44 views
-2

我使用的是PHP和MySQL,我有兩個表,其中包含字段numbername。 Table1中的name字段默認爲空,並且table2中有一行的匹配數字我想更新table1中的名稱。如何從兩個表中選擇和更新

下面的僞代碼說明了這一點:

select number, number 
from table1, table2 
    if number from table1 == number from table2 
    then insert or update name from table1 with the value of name from table2 
+3

你的問題不清楚! – Asteriskiiii 2013-02-27 08:24:58

+1

這個問題還不夠清楚,我不能給你一個確切的答案。但我認爲你正在尋找http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – JodyT 2013-02-27 09:26:23

+0

請訪問這個[鏈接](http://www.4shared.com/ rar/MAJT3jqR/table.html)我更清晰的問題以及表結構和圖像 – batman 2013-02-28 06:20:16

回答

0

在MySQL中,你可以做

UPDATE table1 t1 
INNER JOIN table2 t2 ON t1.number = t2.number 
SET t1.name = t2.name 

更ANSI回答,你不能依賴於一個更新語句將要依賴於子查詢,例如:

UPDATE table1 t1 
SET name = (SELECT name FROM table2 t2 WHERE t2.number = t1.number) 
WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t2.number = t1.number) 

WHERE確保您只更新列有一個匹配的行。

+0

我相信你可以幫助我更多。請看看這個。 [鏈接](http://www.4shared.com/rar/MAJT3jqR/table.html)先進的感謝 – batman 2013-02-28 06:09:57