Запрос на удаление из БД (SQL)

интернет программирование php базы данных sql

Здравствуйте!
Есть 3 таблицы (support_category,support_theme,support_question)
support_category(id,title)
support_theme(id,cat_id,title)
support_question(id,theme_id,title,body)
Задача: При удалении категории удалить все дочерние темы и вопросы.
Смог решить только через 2 запроса: (к примеру удаляем категорию с id = 3)
DELETE FROM support_category, support_theme WHRE support_category.id = 3 AND support_theme.cat_id =3
DELETE `support_question` FROM support_question
LEFT JOIN support_theme ON support_question.theme_id = support_theme.id
LEFT JOIN support_category ON support_theme.cat_id = support_category.id
WHERE support_category.id =3
Как можно объединить эти 2 запроса в 1?

Примечание:
Прошу прощения, первый запрос DELETE `support_category`,`support_theme` FROM support_category LEFT JOIN support_theme ON support_theme.cat_id = support_category.id WHERE support_category.id = 3
Ответы:
Используй внешние ключи
1. если таблицы в INNODB используйте foreigne key on delete cascade
http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
2. если нет foreigne key можно использовать trigger after delete
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.