заказ имеет несколько order_status, прежде чем он будет наконец доставлен клиенту. Иногда клиент размещает несколько заказов из разных источников. Мы принимаем один заказ, но мы отклоняем другой порядок. Я хочу узнать, что было последним статусом заказа принятого заказа, когда дублированный заказ был отменен.
LEFT JOIN(
SELECT order_id AS order_id,order_status,max(addtime('timestamp','05:30:00')) AS timestamp
FROM pe2.order_history
GROUP BY 1,2
) oh ON oh.order_id = ord.order_id AND oh.timestamp <= c.time.
c.time. is duplicate order cancellation time.
Мы получаем желаемый заказ клиента, а затем получаем последний статус для того же порядка, который до отмены дублирующего заказа:
SELECT order.*,
(SELECT order_status FROM order_history AS oh
WHERE order_id = order.id AND timestamp <= cancel_time
ORDER BY timestamp DESC LIMIT 1) AS last_status
FROM order
WHERE order.ID = accepted_order