从两个表中删除数据


deleting data from two tables

>我正在尝试从两个表中删除数据,第一个表(maklumatakaun)将"id"作为其主键,第二个表(detailakaun)将id作为其外键。 现在我的查询导致错误 #1064

$idURL = $_GET['id'];
$query = "DELETE FROM detailakaun
          INNER JOIN maklumatakaun 
          WHERE maklumatakaun.id = detailakaun.id
          AND id = '$idURL'";

我用这段代码回显数据 ID

<a href="buang_akaun.php?id=<?php echo $id;?>

有人知道如何做到这一点吗?

编辑:错误消息

#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的"INNER JOIN maklumatakaun WHERE maklumatakaun.id = detailakaun.id AND id = '53'"附近使用的正确语法

编辑新错误detailakaun有自己的A.I id,即idDetail,在表detailakaun内有NoTelefon,KodLokasi和KodJenisAkaun列,它们可以在一个相同的 maklumatakaun.id 下有多个,现在我的问题是如果有多个,我无法删除

如果您join需要一个ON子句,并且在加入delete时,则需要指定从哪个表中删除

DELETE m, d
FROM detailakaun d
INNER JOIN maklumatakaun m ON m.id = d.id
WHERE d.id = '$idURL'

您可以设置一个触发器,以便在从一个表中删除记录时,它会从第二个表中删除相应的记录。看看这里 : http://code.tutsplus.com/articles/introduction-to-mysql-triggers--net-12226

优点是你只需要执行一个查询,缺点是你可能想从第一个表中删除一条记录,但保留第二个表不变

如果存在您指定的键,则无需经历任何连接条件。

$query = "DELETE FROM maklumatakaun 
          WHERE id = '$idURL'";

这将从两个表中删除记录。但是,如果存在您指定的键,则无法从外键表中删除记录,除非删除两个表之间的关系。