Здравствуйте, уважаемые форумчане!!!
Нужна Ваша консультация!
Есть таблица с объявлениями - declarations (идентификатор объявлений - id).
Задача- удалить, например, какое-то конкретное объявление.
Помимо этой таблицы, имеются другие таблицы, связи которых с таблицей declarations осуществляется через поля id_ads.
- foto_ads; // фото к объявлениям
- ads_views; // просмотры объявлений
- ads_violations; // жалобы на объявления
- reset_views // сведения об обнулении счетчиков просмотров объявлений.
Как уже сказал выше в каждой из этих таблиц имеются поля - id_ads, связывающие их с основной таблицей.
Когда все создавал, то удалял путем запросов DELETE к каждой из этих таблиц.
Хочу сделать более оптимизировано с помощью одного запроса. Погуглил и вот, что получилось:
CODE ( SQL):
скопировать код в буфер обмена
DELETE declarations, foto_ads, ads_views, ads_violations, reset_views // указываю все таблицы, включая и основную - declarations FROM declarations LEFT JOIN foto_ads ON foto_ads.id_ads = declarations.id LEFT JOIN ads_views ON ads_views.id_ads = declarations.id LEFT JOIN ads_violations ON ads_violations.id_ads = declarations.id LEFT JOIN reset_views ON reset_views .id_ads = declarations.id WHERE declarations.id = 1000;
Вопрос: правильный ли синтаксис? и нужно ли после оператора DELETE указывать, помимо связанных с главной таблицей declarations, и саму эту главную таблицу? Или ее нужно указывать только после конструкции FROM ?
Заранее выражаю благодарность за оказанное содействие..
|