【发布时间】:2017-03-16 21:47:39
【问题描述】:
我在公司中使用 Postgresql 作为主存储,我正在努力实现涉及三个不同表的更新查询。
这是架构:
- 表 1 包含 entity_id、entity_type 和 company_id(引用 Company.id)列。
- 公司有 id 列
- Special_company 有 id(对应 Table1.entity_id)和 company_id(引用 Company.id)
我想更新表 1 中 Table1.entity_type = 'SpecialCompany' 的所有行,以便填充 Table1.company_id 以便:
Table1.entity_id = SpecialCompany.id and SpecialCompany.company_id = Company.id
我已经开始这样的事情了:
UPDATE Table1
SET company_id = (select c.id
FROM company c
INNER JOIN special_company w ON c.id=w.company_id
WHERE w.id=709)
WHERE entity_type='SpecialCompany' AND entity_id=709;
但我无法用所有Table1.entity_id 替换709,其中Table1.entity_type = 'SpecialCompany'。
任何帮助将不胜感激。
【问题讨论】:
标签: sql postgresql