如何从2个表中选择和更新

时间:2013-02-27 08:19:22

标签: php mysql sql

我正在使用PHP和MySQL,我有2个包含字段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

1 个答案:

答案 0 :(得分: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确保您只更新匹配行的列。