【问题标题】:How to select last order date for each customer in mysql如何在mysql中为每个客户选择最后一个订单日期
【发布时间】:2016-08-16 16:44:05
【问题描述】:
table_customers(customer_id, customer_name)
table_orders(customer_id, order_id, order_datetime)

我想为每个customer 获取last order date。如果客户没有下任何订单,请为她返回00-00-0000

这是我的查询。

select C.customer_id , date(O.order_datetime) 
from table_customers C 
INNER JOIN table_orders O ON C.customer_id = O.customer_id 
group by O.customer_id order by O.order_datetime desc limit 1;

它只返回最后一个客户的最后订购日期。

如何获取所有客户的最后下单日期?

【问题讨论】:

  • 删除limit 1?

标签: mysql sql database group-by


【解决方案1】:

您好,请在下面查看我的 sql..

select coalesce(max(o.order_datetime), '0000-00-00 00:00:00') as last_order_date, c.customer_id 
from table_orders as o
right join table_customers as c on o.customer_id = c.customer_id
group by c.customer_id
order by c.customer_id;

这可能会对你有所帮助。

示例结果如下。

【讨论】:

【解决方案2】:

你可以这样做

SELECT customer_table.*, orders.order_date FROM customer_table left join (SELECT customer_id, order_date FROM (SELECT tmp.* from  order_table ORDER BY order_date DESC ) as tmp GROUP BY tmp.customer_id) as orders on orders.customer_id= customer_table.id where order.order_date NOT NULL

【讨论】:

    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多