我有以下两个表
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 |
但是下次用户进行编辑时,他们UNCHECK'2'只能这样:
1
3
如何编写查询(使用mySQL或php),以便将表B更新为:
| table_a_id | table_c_id |
| 1 | 2 |
| 3 | 2 |
答案 0 :(得分:2)
DELETE A,B
FROM A
LEFT JOIN B
ON B.table_a_id = A.id
WHERE A.id NOT IN (1,3)
或者使用带有Foreign key ON DELETE CASCADE
的InnoDB,更简单:)
答案 1 :(得分:0)
DELETE
FROM TableB
WHERE (NOT table_a_id IN (1, 3))
AND (table_c_id = 2)