0

我在 MySQL 中有下表。

  • 表 1(ID、名字、姓氏、电话号码)
  • 表 2(TID、TEmail)

我在 Table1 中有 25000 行,我的 Table2 包含 20000 行。我在 Table2 中的 TID 是指 Table1 的主键 ID 的外键。如果 LastName 为 NULL,那么这些 ID 将不会出现在 Table2 中。现在,我正在尝试仅为那些姓氏的人合并这两个表。

我重新定义了 Table2 的架构,如下所示。

  • 表 2(TID、TEmail、TFirstName、TLastName)

现在,我尝试使用以下查询将名字和姓氏值插入表 2。

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

但是,上面的查询给了我一个错误。我可以使用游标/存储过程。但是如果可能的话,希望通过查询本身来实现它。

4

1 回答 1

2

我认为你想要在这里做的是一个 UPDATE 而不是一个 INSERT 查询。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 回答