【发布时间】:2016-09-23 13:47:48
【问题描述】:
所以我有三个表:company、address 和 company_address。
出于优化原因,我需要将city 列从addresses 表复制到companies 表。公司和地址之间的关系是多对一的(因为许多公司可以占用同一个地址)。它们通过 company_address 表连接,由address_id 和company_id 列组成。
我为没有中间表的情况找到了这个解决方案: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;
但它给出了错误:
错误:关系“公司”的“公司”列不存在
我不知道发生了什么。如有任何想法,我将不胜感激。
【问题讨论】:
-
UPDATE company SET company.city=foo.city==>>UPDATE company SET city=foo.city(你不需要子查询)
标签: sql postgresql