我有一个包含2个表用户和类的数据库,每个用户可能有很多类,所以我添加了第三个名为userClasses的表,它有用户ID和类ID,所以当我想从users表中删除用户时,我需要也可以从UserClasse表中删除它。
我提出了这个要求:
$id = $_GET['id']; // already passed through URL using GET method .
$del = $db->prepare("DELETE FROM users,userClasses WHERE users.id= :id, userClasses.userID= :id");
$del->bindParam(':id',$id);
$del->execute();
但它不会被删除!什么都没发生,请问有什么解决方案吗?怎么样?
答案 0 :(得分:3)
你的SQL是无稽之谈 - ' salleresp'表
您无法删除已加入的结果集。使用foreign key constraints声明表格或运行2个删除查询 - 一个用于用户,一个用于userClasses。
答案 1 :(得分:0)
如果存在外键约束,则无法在一个查询中删除两个表中的条目。但是,如果没有这样的约束,则可以使用以下方法:
DELETE u.*, uc.*
FROM users u
LEFT JOIN userClasses uc
ON u.id = uc.userID
WHERE u.id= :id