2011-02-23 71 views
0

我有表A和B以及A_has_B哪里有这样的字段:MySQL的更新许多到许多TABEL关系

答:ID,名称

B:ID,名称

A_has_B:A_ID ,b_id,background

以前,当我在A_has_B中没有'background'字段时,我通过删除A_has_B中的所有记录并重新插入更新的记录来更新。

但现在如何更新A_has_B删除应重新插入的记录?

+0

请你请澄清你的问题 – 2011-02-23 11:47:08

+0

当我没有'background'字段时,我能够从A_has_B中删除给定a_id的所有记录,然后重新插入所有新记录,但现在如果我这样做,用户应重新上传Previo的背景图像usly检查了a_id – 2011-02-23 11:54:35

回答

1

关闭我的头顶,我认为像....

DELETE FROM a_has_b 
WHERE NOT EXISTS (
    SELECT 1 FROM b 
    WHERE b.id=a_has_b.b_id 
); 

(并表 '一' 相似)

DELETE FROM a_has_b 
WHERE b.id <> ANY (SELECT id FROM b); 
1

这听起来像你只需要

update A_has_B 
set background = ??? 
where a_id = ??? and b_id = ??? 

你必须填写失位。