>我正在尝试从两个表中删除数据,第一个表(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'";
这将从两个表中删除记录。但是,如果存在您指定的键,则无法从外键表中删除记录,除非删除两个表之间的关系。