2015-01-11 121 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'"; 

這將從兩個表中刪除記錄。但是,如果您指定的鍵存在,那麼您不能刪除外鍵表中的記錄,而是刪除兩個表之間的關係。