2015-01-11 83 views
0

我试图从两个表中删除数据,第一个表(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服务器版本使用附近的“INNER JOIN maklumatakaun WHERE maklumatakaun.id = detailakaun.id和id =‘53’”在1个线

编辑新的错误 detailakaun正确的语法手册有它自己的AI ID是idDetail,并在里面detailakaun有列NoTelefon,KodLokasi和KodJenisAkaun可以有一个以上相同maklumatakaun.id下多个,现在我的问题是我不能删除,如果有多个

+0

请添加错误信息。 – Jens

+0

也许你必须在'$ idURL'之前和之后移除''''。现在** ID **被视为字符串,但我认为它是一个整数! – pbaldauf

+0

如果两个表使用键连接,则删除主键表记录也会删除外键表记录。 –

回答

1

如果你join你需要一个ON条款,当加入delete时,你需要指定从哪个表中删除

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

比方说,我想更新数据,它是这样的吗? – itsfawwaz

+0

非常相似。你需要更新声明 –

+0

嗨sir @juergend我发现这个代码有新问题,请你看看我的新编辑吗?非常感谢sir – itsfawwaz

0

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

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

这将从两个表中删除记录。但是,如果您指定的键存在,那么您不能删除外键表中的记录,而是删除两个表之间的关系。