假设我们有三个SQL表A,B和C:
TABLE A { id, c_id}
TABLE B {id, c_id}
TABLE C {id}
所以A和B有来自表C的外键。我在表A中创建了一个将引用表B的列:
ALTER TABLE A ADD COLUMN b_id INTEGER;
ALTER TABLE A ADD FOREIGN KEY (b_id) REFERENCES B(id);
所有表格都在制作中并填充了数据。
我需要弄清楚的是如何为每一行填充这个新列,我需要一个SQL查询或一个提示,它将帮助我基于{{A
重新映射到B
1}}在他们两个。
因此,我需要根据共同c_id
为A中的每一行b_id
中的B
中的一个c_id
添加,并为每一行插入。
业务规则只是在有更多({1}}时使用它们。
之后我会删除表b_id
中的c_id
。
答案 0 :(得分:1)
我认为会:
UPDATE A
SET b_id = t.b_ID
FROM (select min(id) as b_Id,c_id FROM B Group by c_id ) AS t
WHERE A.c_id = t.c_id