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

я вторят идентификатор данных с этим кодом

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

ли кто-нибудь знает, как это сделать?

EDIT: ОШИБКА СООБЩЕНИЕ

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «INNER JOIN maklumatakaun WHERE maklumatakaun.id = detailakaun.id И ID =„53“» в строке 1

РЕДАКТИРОВАНИЕ НОВЫЙ ОШИБКА detailakaun имеет свой собственный идентификатор AI, который является 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

Привет, сэр @juergend, я нашел новую проблему с этим кодом, можете ли вы увидеть мое новое редактирование? Высоко оценил сэр – itsfawwaz

0

Вы можете настроить триггер, чтобы при удалении записи из одной таблицы удалялась соответствующая запись из второй таблицы. Посмотрите здесь: http://code.tutsplus.com/articles/introduction-to-mysql-triggers--net-12226

Преимущества, что вам нужно только выполнить один запрос, оборотный быть там, возможно, будет время, вы хотите, чтобы удалить запись из первой таблицы, но оставить вторую таблицу нетронутыми

0

Не нужно проходить какое-либо условие соединения, если есть ключи, указанные вами.

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

Это удалит записи из обоих таблиц. Но если существует ключ, который вы указали, то вы не можете удалить запись из таблицы ключей внешнего ключа, вы удаляете связь между двумя таблицами.

Смежные вопросы