我希望能够删除公司和它的所有用户从页面。
因此,我做了以下工作:
$removeid = $_POST['removeid'];
$deletecompany = "
DELETE c,u
FROM company c
INNER JOIN users u
ON c.id = u.id_company
WHERE c.id = ".$removeid."";
$deletecompanycon = $conn->query($deletecompany);
仅当公司有用户时才有效,但当只有一个公司且没有用户附加到该公司时,查询仍会继续,但不会删除该公司。
没有用户的情况下,如何确保删除公司?
发布于 2018-08-23 02:47:27
尝试使用左连接
$deletecompany = "
DELETE c,u
FROM company c
LEFT JOIN users u
ON c.id = u.id_company
WHERE c.id = ".$removeid."";
$deletecompanycon = $conn->query($deletecompany);
发布于 2018-08-23 03:58:21
可以将ON DELETE CASCADE
选项添加到users
中的外键约束。如果该公司被DBMS删除,则该公司的所有用户都将被删除。
在一条CREATE TABLE
语句中,它看起来与以下内容类似:
CREATE users
(...
FOREIGN KEY (id_company)
REFERENCES company
(id)
ON DELETE CASCADE,
...);
您必须查看如何准确地将其添加到DBMS中的现有约束中。这里的语法可以有很大的不同。
https://stackoverflow.com/questions/51973281
复制相似问题