2014-03-31 89 views
0
company contains id,company_name 

company_alias contains id,company_id,company_alias 

company_rawdata contains id,complaint descrption,company_match 

我正在嘗試更新company_name與company_name的匹配,其中company descrption包含別名。mysql:加入更新

update company_rawdata cr inner join company c on c.company_name 
like concat('',cr.complaint_descrption,'') set cr.matched_company = c.company_name 
+1

發佈您的代碼,我們會引導你。 – karlingen

+0

更新company_rawdata CR 內上c.company_name像的concat( '',cr.complaint_against, '') 組cr.matched_company = c.company_name – user3440798

+0

不能夠加入所有3個表加入公司C .. – user3440798

回答

0
UPDATE company_rawdata r 
INNER JOIN company_alias a ON a.company_alias = r.description 
INNER JOIN company c ON c.id = a.company_id 
SET r.company_match = c.company_name 

或者,如果a.company_alias是內a.company_alias某處包含以下內容:

UPDATE company_rawdata r 
INNER JOIN company_alias a ON a.company_alias LIKE CONCAT('%', r.description, '%') 
INNER JOIN company c ON c.id = a.company_id 
SET r.company_match = c.company_name 
+0

a.company_alias = r.description不等於..例如說明包含'vodaphone在線投訴',company_alias包含vadaphone,vadafone – user3440798

+0

@ user3440798,我的更新答案是否適合您? – Linger

0

試一下:

UPDATE company c 
INNER JOIN company_alias a ON a.company_id = c.id 
INNER JOIN company_rawdata r ON a.company_alias = r.company_match 
SET r.company_match = c.company_name 
+0

你應該說什麼表格之間的關係,我們不會去猜測它們。 –

+0

在我看來,OP正在更新'company_rawdata'而不是'company'。 – Linger