Sql 涉及三个表的复杂更新
我在公司中使用Postgresql作为主要存储,我正在努力实现一个涉及三个不同表的更新查询 以下是模式:Sql 涉及三个表的复杂更新,sql,postgresql,Sql,Postgresql,我在公司中使用Postgresql作为主要存储,我正在努力实现一个涉及三个不同表的更新查询 以下是模式: 表1有entity_id、entity_type和company_id(引用company.id)列 公司有id列 特殊公司有id(对应于表1.实体id)和公司id(参考company.id) 我想更新表1的所有行,其中Table1.entity\u type='SpecialCompany',以便填写Table1.company\u id,以便: Table1.entity\u id=
- 表1有entity_id、entity_type和company_id(引用company.id)列
- 公司有id列
- 特殊公司有id(对应于表1.实体id)和公司id(参考company.id)
Table1.entity\u type='SpecialCompany'
,以便填写Table1.company\u id
,以便:
Table1.entity\u id=SpecialCompany.id和SpecialCompany.company\u 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\u id
whereTable1.entity\u type='SpecialCompany'
替换709
任何帮助都将不胜感激。我想您正在寻找类似的东西
update t
set t.company_id=c.id
from
Company C
INNER JOIN special_company w ON c.id=w.company_id
INNER JOIN Table1 t on t.entity_id=w.entity_id
Where t.entity_type = 'SpecialCompany'
我猜你在找这样的东西
update t
set t.company_id=c.id
from
Company C
INNER JOIN special_company w ON c.id=w.company_id
INNER JOIN Table1 t on t.entity_id=w.entity_id
Where t.entity_type = 'SpecialCompany'
我正在回答我的问题,因为我找到了解决方案:
更新表1 t
设置公司id=c.id
来自c公司
c.id上的内部连接特殊公司w=w.company\U id
哪里
t、 实体类型='SpecialCompany'和t.entity id=w.id;
谢谢@Krishna的帮助 我正在回答我的问题,因为我找到了解决方案:
更新表1 t
设置公司id=c.id
来自c公司
c.id上的内部连接特殊公司w=w.company\U id
哪里
t、 实体类型='SpecialCompany'和t.entity id=w.id;
谢谢@Krishna的帮助 谢谢你的帮助。执行此操作时,第一行出现错误:
UPDATE t SET^************错误*******错误:关系“t”不存在SQL状态:42P01字符:112
感谢您的帮助。这样做,在第一行给了我一个错误:UPDATE t SET^************错误*********错误:关系“t”不存在SQL状态:42P01字符:112
我没有时间研究这个问题。我的查询在MSSQL中工作。我不知道这是专为博士后准备的。对不起,我没有时间调查此事。我的查询在MSSQL中工作。我不知道这是专为博士后准备的。很抱歉。