2012-02-14 131 views
0

我试图从我的数据库中删除关联表。它包含引用表a和b的两列(a_id和b_id)。在数据库模型更改后传输现有数据(PostgreSQL)

此表是不必要的,因为实际上它是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; 

此选择语句有效。它可以与UPDATE语句组合吗? UPDATE语句看起来有点像:

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

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

回答

1

update b set a_id =(SELECT assoc_a_b.a_id from assoc_a_b where assoc_a_b.b_id = b.id)

相关问题