有两个表 MAIN 和 SUB。目前子表包含该关系,但需要使 MAIN 成为该关系的所有者。
以下是两个表的示例内容:
MAIN
| id | sub_id |
| 1 | null |
| 2 | null |
| 3 | null |
SUB
| id | main_id |
| 1 | 1 |
执行此脚本
UPDATE main SET sub_id = sub.id FROM main m JOIN sub s ON s.main_id = m.id;
会对MAIN
表执行以下结果:
MAIN
| id | sub_id |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
这就是需要达到的预期结果
MAIN
| id | sub_id |
| 1 | 1 |
| 2 | null |
| 3 | null |
我也尝试过 onner、left、right、left external 和 right external 连接,但结果总是相同
您当前的查询使用表“main”两次并且没有关系。这会导致 update 更改所有记录。
UPDATE main
SET sub_id = sub.id
FROM sub s
WHERE s.main_id = main.id;
并且您不能使用 JOIN 语法。