-2

PHPとMySQLを使用しており、フィールドnumberとを含む2つのテーブルがありますname。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
4

1 に答える 1

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 は、一致した行がある列のみを更新していることを保証します。

于 2013-02-27T09:58:50.027 に答える