mysql - 如何在mysql中选择每个客户的最后订单日期

标签 mysql sql database group-by

table_customers(customer_id, customer_name)
table_orders(customer_id, order_id, order_datetime)

我想获取每个客户最后订单日期。如果客户没有下任何订单,请为她返回 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;

它仅返回最后一位客户的最后订单日期。

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

最佳答案

您好,请检查下面的 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;

这可能对你有帮助。

示例结果如下。

enter image description here

关于mysql - 如何在mysql中选择每个客户的最后订单日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38980303/

相关文章:

PHP 表单处理 - 使用多个用户输入连接表

php - 计算表中字符串值的百分比

mysql - 如何像excel中的pivot一样显示mysql中的数据

mysql - SQL 查询 - 派生一个查询,该查询将找到其他查询获得的数字的平均值

sql - 名+姓+生日组合是否足够独特?

php - SQL : ALTER new column IF NOT EXISTS - how?

Android 将数据库从内部存储复制到外部存储

MySQL - 使用连接获取两个表上两组数据之间的差异?

mysql - 为什么我必须运行两次迁移才能使值出现在数据库中?

sql - 如何有效地对复杂 SQL 查询的结果进行分页?