我有参与此查询我需要创建三个表,我不完全知道如何以更新办公室加入这两个(地址 & address_key)表表。UPDATE涉及三个表
我有一个办公室表,地址表和address_key表。 办公室表具有地址数据(街道,城市,州,邮编)和办公室ID#。
地址表具有地址数据和地址Id#。
address_key表中有address_id和office_id的。我需要更新表办公室表中的现有行,地址数据来自地址表链接它们与address_key表中的密钥。
我将如何去更新办公室表地址数据字段?
我有参与此查询我需要创建三个表,我不完全知道如何以更新办公室加入这两个(地址 & address_key)表表。UPDATE涉及三个表
我有一个办公室表,地址表和address_key表。 办公室表具有地址数据(街道,城市,州,邮编)和办公室ID#。
地址表具有地址数据和地址Id#。
address_key表中有address_id和office_id的。我需要更新表办公室表中的现有行,地址数据来自地址表链接它们与address_key表中的密钥。
我将如何去更新办公室表地址数据字段?
你可以通过address_key表的每一行循环,更新与使用您所循环的每一行中的ADDRESS_ID地址信息office_id办公室备案。我认为,如果你使用的是Oracle(问题被标记为Oracle11g中)这样的事情应该工作:
FOR id_row in (SELECT * FROM address_key)
LOOP
UPDATE office SET (street, city, state, zip) =
(SELECT street, city, state, zip FROM address WHERE address_id = id_row.address_id);
WHERE office_id = id_row.office_id
END LOOP
我希望帮助!
非常感谢。谢谢!! – user761758 2013-03-07 18:11:44
update o set
street = a.street
, city = a.city
, state = a.state
, zip = a.zip
from Office o
join Address_Key k
on k.officeid = o.officeID
join Address a
on a.addressID = k.addressid
您可以根据您的连接运行UPDATE。
UPDATE office
SET office.street = address.street ,
office.city = address.city ,
office.state = address. ,
office.zip = address.zip
FROM office
INNER JOIN address_key ON office.office_id = address_key.office_id
INNER JOIN address ON address_key.address_id = address.address_id
这看起来像家庭作业。在这个网站上真正预计到,在提供任何帮助之前,对于作业问题OP(原始海报,您)展示了努力。 – 2013-03-07 17:37:02