私は3つのテーブルを持っています:会社、住所、company_address。PostgreSQL - 関連テーブルの列をコピー
私は、city
列をaddresses
テーブルからcompanies
テーブルにコピーする必要があります。企業と住所の関係は、多くの企業が同じ住所を占めることができるため、多対1です。それらはaddress_id
とcompany_id
の列で構成されるcompany_addressテーブルによって接続されています。
私は中間テーブルなしの場合のために、この解決策を見つけた:How to copy one column of a table into another table's column in PostgreSQL comparing same ID
は、クエリを変更しようとすると、私が思いついた:
UPDATE company SET company.city=foo.city
FROM (
SELECT company_address.company_id, company_address.address_id, address.city
FROM address LEFT JOIN company_address
ON address.id=company_address.address_id
) foo
WHERE company.id=foo.company_id;
が、それはエラーを与える:
ERROR: column "company" of relation "company" does not exist
私は姿をカント何が起こっているのか。私はどんなアイデアにも感謝しています。
'UPDATE会社は、SET company.city = foo.city' == >>' UPDATE company SET city = foo.city'(サブクエリは必要ありません) – joop