首页 > 解决方案 > 显示所有客户在他们入职后提供的每个日期记录

问题描述

Date_spine表:它包含 2020 年 3 月的所有日期

DATE  
2020-03-01  
2020-03-02  
2020-03-03  
2020-03-04  
2020-03-05  
2020-03-06  
2020-03-07  

Customer桌子:

id  |  customer_name | onboarding_date     
123 | Ainc           | 2020-03-02  
124 | Binc           | 2020-03-03

期望的输出:对于date_spine表中的每个日期,我们需要显示所有客户在他们入职时或之后。但是,我们不需要查看没有客户的日期。例如:2020-03-01没有出现在所需的输出中,因为到那时还没有客户加入。

DATE         | CUSTOMER  
2020-03-02   | Ainc  
2020-03-03   | Ainc   
2020-03-03   | Binc  
2020-03-04   | Ainc  
2020-03-04   | Binc

标签: mysqlsqldatejoinleft-join

解决方案


您可以join在不等式条件下:

select d.date, c.customer_name
from customer c
inner join date_spine d on d.date >= c.onboarding_date
order by d.date, c.customer_name

推荐阅读