2015-03-16 6 views
1

У кого-нибудь есть идея о том, как удалить из нескольких таблиц в одном запросе? Я почесывал голову бесконечно, пытаясь найти способ сделать эту работу. Но мой бесконечный поиск на Google havnet помог ..УДАЛИТЬ ОТ нескольких таблиц?

У меня есть кнопка удаления на моем сайте, который необходимо удалить из нескольких таблиц .. На данный момент он использует код, чтобы удалить из таблицы «tilbehor»

DELETE FROM tilbehor WHERE t_id = '$id' 

Но я также нужно удалить из таблицы «Обл»

в таблице Обл я есть 3 столбца «идентификатор», «P_ID» и «t_id». Мне нужно все это исключить, где «t_id» = в $ идентификатор из запроса

+0

Проведите поиск по «транзакциям». –

+0

Какой двигатель db вы используете? Вы также можете решить эту проблему, выполнив динамический SQL, например, создав коллекцию имен таблиц и итерации по ней, поэтому в одном и том же запросе изменяется только имя таблицы. Немного грязно, да. Другим вариантом было бы создание хранимой процедуры. – facundofarias

+0

Добавить ограничение внешнего ключа – symcbean

ответ

1
DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 
WHERE t1.t_id=t2.t_id AND t2.t_id=t3.t_id; 
+1

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – Bono

0

Если t_id является основным ID. Вы можете посмотреть в Foreign keys и использовать на DELETE Cascade. Внешние ключи связаны с первичным ключом из другой таблицы. Когда удаляемый совпадающий первичный ключ таблицы удаляется, строки других таблиц, которые соответствуют внешнему ключу с первичным ключом, также удаляются

+0

Я не могу использовать внешние ключи. Они не подключены из другой таблицы. Его способ «связать» продукт с аксессуарами. Таким образом, таблица «kategori» имеет p_id много t_id, так что на веб-странице, когда вы выиграете определенный продукт (p_id), страница знает, какие аксесуары для отображения (t_id). Но когда вы удаляете аксессуар, ему необходимо удалить соединение из таблицы в базе данных. И поэтому ему нужно УДАЛИТЬ все FROM tilbehor AND kategori, где t_id = '$ id' .. –

+0

@KristianTarp Ага хорошо, я не мог понять это из вопроса, который вы задали. Я собираюсь оставить этот ответ здесь для будущих посетителей, которые действительно ищут это. – Loko