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

时间:2011-07-20 18:25:56

标签: php mysql

我有以下两个表

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        |

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)