2011-12-16 66 views
-2

我有一個表格式提取基於兩個領域的主鍵,取代基於關鍵

ID NAME  NICKNAME MENTOR_NAME MENTOR_NICKNAME 
------------------------------------------------ 
01 Nolan Nole  Jonathan Jones 
02 Jonathan Jones 

字段MENTOR_NAME和MENTOR_NICKNAME包含現有現有名和暱稱的名稱(除錯別字)這些領域組合。

要避免錯字的問題,我想用一個MENTOR_ID導致表像,以取代MENTOR_NAME和MENTOR_NICKNAME:

ID NAME  NICKNAME MENTOR_ID 
------------------------------ 
01 Nolan Nole  02 
02 Jonathan Jonas 

我無法弄清楚是查詢語法,使我能避免通過每個記錄會手動或者爲此寫一個php腳本。

任何人都可以幫助我進行此轉換的查詢嗎?

編輯:添加示例數據。

+0

據混淆,可以提供輸入和輸出的一些例子嗎? – ajreal 2011-12-16 12:02:41

回答

1

這是更新現有的表: -

update the_table as a, 
the_table as b 
set a.mentor_id = b.mentor_id 
where a.name = b.mentor_name and a.nickname = b.mentor_nickname; 

如果你想複製到另一個表: -

create table another_table 
select a.id, a.name, a.nickname, b.mentor_id 
from the_table as a 
inner join the_table as b 
on (a.name=b.mentor_name and a.nickname=b.mentor_nickname);