MySQL,php表问题(更新时删除)


MySQL, php table question (delete on an update)

我有下面两个表

table A
| id | name |
| 1  | bob |
| 2  | jill |
| 3  | jojo |

表A通过使用复选框显示。

第一次,用户选中所有三个复选框,这样您就可以在表B中得到结果。

table B
| table_a_id | table_c_id |
| 1          |   2        |
| 2          |   2        |
| 3          |   2        |

但下次用户进行编辑时,他们会取消选中"2",使其仅为:

1
3

如何编写查询(使用mySQL或php(以便将表B更新为:

| table_a_id | table_c_id |
| 1          |   2        |
| 3          |   2        |
DELETE A,B 
FROM A
LEFT JOIN B
ON B.table_a_id = A.id
WHERE A.id NOT IN (1,3)

或者使用InnoDB和外键ON DELETE CASCADE,简单得多:(

DELETE 
FROM TableB 
WHERE (NOT table_a_id IN (1, 3)) 
    AND (table_c_id = 2)