本来A表和B表是一对一个关联的,A表里有B表的主键关联起来的。
后来要改成一对多关系,一个A对多个B
所以要建了C表,C表是关联表存在A和B的主键
代码层逻辑要改,要去C表去关联,而本来的A表里有B的主键要导到C表里
把A表里B的主键导到C表SQL
INSERT INTO c ( a_id, b_id ) SELECT
ta.id AS a_id,
ta.b_id AS b_id
FROM
a ta
如果C表已经部分数据
INSERT INTO c ( a_id, b_id ) SELECT
ta.id AS a_id,
ta.b_id AS b_id
FROM
a ta
WHERE
ta.id NOT IN ( SELECT aa.id FROM a aa INNER JOIN c cc ON cc.a_id = aa.id AND cc.b_id = a.b_id )