Учитывая эту схему
заказы (order_number, created, status) products (product_id, product_name) orders_products (order_number, product_id, количество)
Если я хотел бы удалить заказы старше N дней, мне пришлось бы также удалить записи, связанные с этими заказами, в таблице orders_products.
Как я могу сделать это в одном запросе без необходимости извлекать каждый номер заказа, хранить их в бизнес-логике и, наконец, запускать дополнительные запросы для очистки таблицы сопоставления?
У меня нет FK
Это похоже на работу:
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
ON DELETE CASCADE
для сводной таблицы в вашей структуре БД, как упомянуто @mentallurg !!!