【发布时间】:2012-05-08 06:46:38
【问题描述】:
我有两个表:account_company 和 document_invoice。 表 account_company 有 2 列:company_id 和 company_name。 表 document_invoice 具有相同的列:company_id 和 company_name。 发生了一些事情,从 document_invoice 中删除列公司名称的所有数据。
如何编写 SQL 查询将数据从客户公司表复制到 document_invoice? 我一直在使用 UPDATE 和 SET,但我不知道具体如何。
UPDATE document_invoice
SET company_name = (SELECT company_name FROM account_company)
WHERE document_id.company_name=document_id.account
【问题讨论】:
-
稍微OT,考虑不携带单据发票表中的公司名称,除非您认为公司名称可能会更改并且您想从发票的时间。 (即便如此,您可能会考虑对问题进行临时管理,但这可能太过分了。)数据的冗余存储使得更新成本更高,并带来了它们可能不同步的风险。这就是连接的用途。不要相信 FUD 会很昂贵。
-
我同意 kgrittn:如果您在 document_invoice 中已有 company_id,则无需在该表中保留 company_name 的副本。
标签: sql postgresql set sql-update