MySQL - 插入 - 选择具有外键关系的多行

时间:2013-07-29 15:15:53

标签: mysql

我在MySQL中有以下表格。

  • 表1(ID,FirstName,LastName,TelephoneNum)
  • 表2(TID,TEmail)

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

我重新定义了Table2的模式,如下所示。

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

现在,我尝试了以下查询,将firstname和lastname值插入表2中。

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

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

1 个答案:

答案 0 :(得分:2)

我认为你想在这里做的是UPDATE而不是INSERT查询。 INSERT用于创建其他行,而UPDATE用于更改值。

UPDATE Table2 JOIN Table1
ON Table2.TID = Table1.ID
SET Table2.TFirstName = Table1.FirstName,
SET Table2.TLastName = Table1.LastName;