更新MySQL表中几个表中的字段匹配的字段
问题描述:
我有四个表。第一个包含志愿者列表,第二个列表站点,第三个列表项目。一个项目行只是一个参考志愿者和一个网站的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)
应该怎样子查询呢?
答
你不想在这里找到子查询,你想要一个连接。
我会为你写的,但你不显示你的表,所以我不能。
但基本上,你需要做的第一件事是写一个SELECT
所有表格,正确连接的一切。一旦你做到了这一切,你需要的是将其更改为UPDATE
,你就完成了。
答
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
什么问题? – Ariel