2011-04-30 119 views
0

MySQL noob here;首先環顧四周,但找不到這個問題的答案。MySQL - 如何從一個表中插入值到另一個字符串匹配?

所以不得不在MySQL,酮(表1),其由包含名稱的唯一列表(Col1中)和另一種含有對應的二進制值(col2的)一列的兩個表。第二個表(表2)含有具有空柱等待被填充有來自所述第一表的二進制值的重複名稱的列表。我想要做的是,對於Table2中重複名稱的每個實例,從Col2中插入與Table1中匹配的唯一名稱關聯的二進制值。

我知道如何在做到這一點的Excel你只是把旁邊包含重複名稱的每一行以下VLOOKUP聲明。在下面的代碼片段A2是一個經常性的名字,唯一的名稱都包含在列B和二進制值包含在列C.

=VLOOKUP(A2,$B$2:$C$106095,2,FALSE) 

但我不能爲我的生活弄清楚如何在MySQL中重現這種效果。由於數據太多,我無法使用Excel。有人有主意嗎?提前致謝!

+0

如果您告訴我們確切的表結構會更容易。 – 2011-04-30 06:49:56

回答

1

我想你想是這樣的(我不知道Excel的聲明做什麼):

UPDATE table2 JOIN table1 ON table1.col1 = table2.col1 
SET table2.col2 = table2.col2 
WHERE table2.col2 IS NULL 

這將更新有col2空,搜索在table1相應的行每行table2根據匹配col1列。

順便說一句,你有這個理由嗎?爲什麼不在選擇數據時加入兩個表?例如:

SELECT table2.col1, table1.col2 
FROM table2 JOIN table1 ON table1.col1 = table2.col1 
+0

謝謝你!第二個命令工作 - 第一個命令沒有任何返回。現在,看到它需要多長時間來對> 100K記錄... – darkfaculties 2011-04-30 07:53:49

+1

@darkfaculties執行:放置在處於加入大量數據的處理時,通常會加快進程,大大使用的列的索引。不是100K記錄是「大」。 – Tim 2011-04-30 09:23:51

+0

第一個是不應該返回任何東西,它只是更新第二個表。我想這是一個術語誤解。 :) – 2011-04-30 10:07:31

相關問題