2011-09-19 91 views
0

我有四個表。第一個包含志願者列表,第二個列表站點,第三個列表項目。一個項目行只是一個參考志願者和一個網站的ID和一個名爲部門更新MySQL表中幾個表中的字段匹配的字段

所有這三個表格都是從第四個表中派生出來的,這個表格是傳統。我需要從名爲扇區的列中的傳統表中的每一行中抽取一個字段,並將其放置在項目表中對應行的扇區列中。

爲了知道我在遺留表中的正確行更新項目表時,我需要匹配的列名字姓氏志願者和列直轄市網站與其相應的列在傳統

我想我的查詢應該是這個樣子:

UPDATE projects, legacy 
    SET 
    projects.sector = legacy.sector,  
    WHERE (SUBQUERY CONTAINING COMPARISONS OF OTHER FEILDS IN OTHER TABLES SUCH AS 
     volunteers.firstname = legacy.firstname 
     volunteers.lastname = legacy.lasttname 
     sites.province= legacy.province 
     sites.municipality= legacy.municipality 
     sites.name= legacy.name) 

應該怎樣子查詢呢?

+1

什麼問題? – Ariel

回答

0

你不想在這裏找到子查詢,你想要一個連接。

我會爲你寫的,但你不顯示你的表,所以我不能。

但基本上,你需要做的第一件事是寫一個SELECT所有表格,正確連接的一切。一旦你做到了這一切,你需要的是將其更改爲UPDATE,你就完成了。

0
UPDATE projects 
    SET sector = legacy.sector 
FROM legacy 
INNER JOIN sites ON sites.province = legacy.province AND/OR 
     sites.municipality = legacy.municipality AND/OR 
     sites.name = legacy.name 
INNER JOIN volunteers ON volunteers.firstname = legacy.firstname AND/OR 
     volunteers.lastname = legacy.lasttname 
相關問題