0

ここで提供されている回答を使用しています:メタデータキーが存在しないクエリ行

   UPDATE table1
   SET table1.id = table2.id
   FROM table1
   LEFT JOIN table2 ON table1.id=table2.id
   WHERE table.id IS NULL

テーブル1のすべてのIDをテーブル2の対応するIDに設定しようとしていますが、テーブル1のIDがnullの場合にのみ、「mysqlエラー」が発生します。

何かご意見は?前もって感謝します。

4

2 に答える 2

1

ほとんどのデータベースと同様に、MySQL には、結合と更新を組み合わせた独自の構文があります。

UPDATE table1
LEFT JOIN table2 ON table1.id=table2.id
SET table1.id = table2.id
WHERE table1.id IS NULL
于 2013-01-04T23:37:50.723 に答える
0

UPDATE ステートメントに参加することはできません (編集 - できるかもしれません)。正確に 1 行を返す副選択が必要です。また、idが結合列である場合、クエリは意味がありません-他の何かに結合していると仮定します。

このようなものは正しいと思います(テストしていません)。

UPDATE table1 outer
SET id = (
    SELECT table2.id 
    FROM table2 JOIN table1 USING(join_column) -- or ON if the columns aren't the same
    WHERE join_column = outer.join_column
)
WHERE id is null
于 2013-01-04T23:42:29.850 に答える