我希望能够从页面中删除公司及其所有用户。
所以我做了以下事情:
$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);
这仅在公司有用户的情况下有效,但是在只有公司且没有用户附加的情况下,查询仍会通过,但公司不会被删除。
即使没有用户,如何确保删除公司?
答案 0 :(得分:1)
您可以将ON DELETE CASCADE
选项添加到users
中的外键约束中。然后,如果公司被DBMS删除,则该公司的所有用户都将被删除。
在CREATE TABLE
语句中看起来与此类似:
CREATE users
(...
FOREIGN KEY (id_company)
REFERENCES company
(id)
ON DELETE CASCADE,
...);
您必须查看如何将其准确添加到DBMS中的现有约束。这里的语法可能会有所不同。
答案 1 :(得分:0)
尝试使用LEFT JOIN
$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);