MySQL DELETE и отношения многие ко многим

0

Учитывая эту схему

заказы (order_number, created, status) products (product_id, product_name) orders_products (order_number, product_id, количество)

Если я хотел бы удалить заказы старше N дней, мне пришлось бы также удалить записи, связанные с этими заказами, в таблице orders_products.

Как я могу сделать это в одном запросе без необходимости извлекать каждый номер заказа, хранить их в бизнес-логике и, наконец, запускать дополнительные запросы для очистки таблицы сопоставления?

У меня нет FK

Теги:
many-to-many

1 ответ

-2

Это похоже на работу:

DELETE orders_products, orders 
FROM orders_products 
INNER JOIN orders 
ON orders_products.order_number = orders.order_number 
WHERE orders.created  < NOW() - INTERVAL 30 DAY
  • 0
    Вместо этого используйте каскад.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню