数据库模型更改后传输现有数据(PostgreSQL)

时间:2012-02-14 10:22:37

标签: postgresql select

我正在尝试从数据库中删除关联表。它包含引用表a和b的两列(a_id和b_id)。

这个表是不必要的,因为实际上它是OneToMany关系。所以我在表b中添加了列a_id。

我的问题:如何将现有的entrys从assoc_a_b转移到b.a_id?

SELECT DISTINCT b.id, a.id FROM table_a AS a
JOIN assoc_a_b AS assoc ON a.id = assoc.a_id
JOIN table_b AS b ON b.id = assoc.b_id;

此select语句有效。它可以与UPDATE语句结合使用吗? UPDATE语句看起来像:

UPDATE b SET a_id = a.id WHERE id = b.id;

使用上面的select语句中的a.id和b.id。

1 个答案:

答案 0 :(得分:1)

更新b设置a_id =(从assoc_a_b中选择assoc_a_b.a_id,其中assoc_a_b.b_id = b.id)