MySQL查询以生成一个用户列表,该用户列表至少有一个订单但本月至今没有订单

时间:2019-02-04 14:43:21

标签: mysql sql

我有两个表用户和订单。订单表中的外键是user_id。我需要一个至少有一个订单但本月至今没有订单的用户列表。

3 个答案:

答案 0 :(得分:1)

尝试一下:

v-for

答案 1 :(得分:1)

获取最后一个订单在当月前的用户:

select u.user_id, u.username 
from user u
inner join order o 
on on.user_id = u.user_id
group by u.id, u.username
having max(o.OrderDate) < DATE_FORMAT(NOW() ,'%Y-%m-01') 

答案 2 :(得分:0)

只需使用聚合:

select o.user_id
from orders o
group by o.user_id
having count(*) >= 2 and  -- at least two orders
       max(order_date) < curdate() + (1 - day(curdate())) day;

表达式curdate() + (1 - day(curdate())) day是获取月份的第一个日期的便捷方法。