MySQL DELETE и отношения многие ко многим - PullRequest
0 голосов
/ 24 июня 2018

С учетом этих схем

заказы (ORDER_NUMBER, создано, статус) продукты (product_id, product_name) orders_products (ORDER_NUMBER, product_id, количество)

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

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

У меня нет FK

1 Ответ

0 голосов
/ 24 июня 2018

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

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...