2011-09-19 88 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 
相关问题