私の会社でプライマリストアとしてPostgreSQLを使用していますが、3つの異なるテーブルを含む更新クエリを実装するのに苦労しています。ここ3つのテーブルが含まれた複雑な更新
スキーマである:
- 表1は、ENTITY_TYPEとのcompany_id(Company.idを参照)カラムをENTITY_IDました。
- 会社
- Special_companyは(Table1.entity_idに相当する)のIDとIは、表1のすべての行を更新したい
のcompany_id(Company.idを参照)を有するTable1.entity_type = 'SpecialCompany'
順にID列を有します
Table1.entity_id = SpecialCompany.id and SpecialCompany.company_id = Company.id
:Table1.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;
ただし、709
をすべてTable1.entity_id
(Table1.entity_type = 'SpecialCompany'
)と置き換えることはできません。
ご協力いただければ幸いです。
私はこれを調べる時間がありませんでした。私のクエリはMSSQLで動作します。私はそれがPostgreのためだと気付かなかった。申し訳ありません。 – Krishna