2012-02-14 129 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)

相關問題