2013-07-29 39 views
0

我在MySQL中有下表。MySQL - 插入 - 選擇與外鍵關係的多行

  • 表1(ID,名字,姓氏,TelephoneNum)
  • 表2(TID,TEmail)

我有表1 25000行和表2我有20000行。表2中的我的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 

然而,上面的查詢給我一個錯誤。我可以使用遊標/存儲過程。但是如果可能的話,它希望通過查詢本身來實現它。

回答

2

我認爲你想在這裏做什麼是一個更新而不是INSERT查詢。 INSERT用於創建額外的行,而UPDATE用於更改值。

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

Thanks @Alden。我完全是空白,我錯過了這一個。 – Ramesh