Автор Тема: SQL запрос на удаление заказов  (Прочитано 105 раз)

01 Апреля 2016, 16:37:24
  • Старожил
  • ****
  • Сообщений: 328
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Такой вопрос...
Необходимо удалить уже обработанные заказы и все что с ними связано.
Можно по отдельности удалить с тавлиц базы, то-есть..
Строка ="DELETE FROM ps_cart WHERE ps_cart.id_cart = "+Д4;
Строка ="DELETE FROM ps_cart_product WHERE ps_cart_product.id_cart = "+Д4;
Строка ="DELETE FROM ps_orders WHERE ps_ps_orders.id_order = "+Д3;
Строка ="DELETE FROM ps_order_history WHERE ps_order_history.id_order = "+Д3;
Строка ="DELETE FROM ps_order_detail WHERE ps_order_detail.id_order = "+Д3;
Но хотелось соединить это все в один запрос.
Подскажите как это сделать.
Спасибо!
01 Апреля 2016, 18:54:48
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2554
  • Репутация: +58/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Такой запрос удалит все дочерние записи из таблицы ps_cart_product.
DELETE pc.*
FROM ps_cart  pc
LEFT JOIN ps_cart_product pcp ON  pc.id_cart = pcp.id_cart
WHERE pcp.id_cart = "+Д4";

Только проверяй на локалке, а то если ошибкшься в условии, в нем не будут учавствствовать поле из родительской таблицы, то будут удалены все записи таблицы ps_cart_product.