繁体   English   中英

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

[英]MySQL, php table question (delete on an update)

我有以下两个表格

table A

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

表 A 使用复选框显示。

在第一个 go 上,用户选中所有三个复选框,以便您在表 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM