0

MySQLに以下のテーブルがあります。

  • Table1 (ID、名、姓、電話番号)
  • 表 2 (TID、TEmail)

Table1 には 25000 行あり、Table2 には 20000 行が含まれています。Table2 の TID は、Table1 の主キー ID を参照する外部キーです。LastName が NULL の場合、これらの ID は Table2 に存在しません。今、私は姓を持つものだけのために2つのテーブルをマージしようとしています.

Table2 のスキーマを以下のように再定義しました。

  • Table2(TID、TEmail、TFirstName、TLastName)

ここで、以下のクエリを試して、firstname と lastname の値を表 2 に挿入しました。

insert into Table2 (TFirstName, TLastName) select FirstName,LastName from Table1 where ID = Table2.TID

ただし、上記のクエリではエラーが発生します。カーソル/ストアド プロシージャを使用できます。しかし、可能であれば、クエリ自体を通じてそれを達成しようとしていました。

4

1 に答える 1

2

ここでやりたいことは、INSERT クエリではなく UPDATE だと思います。INSERT は追加の行を作成するためのものであり、UPDATE は値を変更するためのものです。

UPDATE Table2 JOIN Table1
ON Table2.TID = Table1.ID
SET Table2.TFirstName = Table1.FirstName,
SET Table2.TLastName = Table1.LastName;
于 2013-07-29T15:32:25.313 に答える