我正在尝试选择所有客户购买的最后一个订单,真正的目的是添加特定范围,例如最近3个月,并考虑过去3个月内任何客户的最后订单,但没有订单比这3个月还早,到目前为止,我有这个:
SELECT zen_orders.orders_id, zen_customers.customers_id,
zen_orders.date_purchased, zen_orders.orders_status
FROM zen_orders
INNER JOIN zen_customers
ON zen_orders.customers_id = zen_customers.customers_id
AND zen_orders.orders_status = '3'
ORDER BY zen_customers.customers_id
我是mysql的新手,现在这回复了我所有客户的所有订单,当一个客户端多了一个订单时,它重复了几行不同的订单ID但是客户ID相同,但现在我如何隔离只是订单所有客户的最后一个订单,以便我可以在一个范围内适应它?
答案 0 :(得分:0)
select o.orders_id,o.customers_id,
o.date_purchased, o.orders_status from
(
select max(o.orders_id) maxOrder,o.customer_id
FROM zen_orders o
where o.orders_status = '3'
group by o.customers_id
) t
inner join zen_orders o on o.orders_id = t.maxOrder
答案 1 :(得分:0)
显示超过30天且不超过60天的客户信息和订单信息。
SELECT C.customers_id, C.customers_firstname, C.customers_lastname,
O.date_purchased, O.orders_id, O.order_total, OS.orders_status_name
FROM orders O
LEFT join customers C on C.customers_id = O.customers_id
LEFT join orders_status OS on OS.orders_status_id=O.orders_status
WHERE
O.date_purchased BETWEEN DATE_SUB(NOW(), INTERVAL 2 MONTH) AND DATE_SUB(NOW(), INTERVAL 1 MONTH)
GROUP BY C.customers_id