使用连接从mysql中删除?

时间:2014-06-05 21:15:20

标签: php mysql sql sql-delete

我有一个包含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();

但它不会被删除!什么都没发生,请问有什么解决方案吗?怎么样?

2 个答案:

答案 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