Mysql 在日期范围联接上填充数据库

Mysql 在日期范围联接上填充数据库,mysql,Mysql,我有一个数据集,日期设置为每个月的第一天。 乙二醇- 单位 日期 32 2021-01-01 37 2021-02-01 47 2021-03-01 我假设表B示例中缺少日期范围2021-01-15到2021-01-29。如果是这样,此查询应该能够返回您的预期结果: SELECT Units, Date, StartDate, EndDate FROM tableA a LEFT JOIN tableB b ON a.Date <= b.EndDate AND MO

我有一个数据集,日期设置为每个月的第一天。 乙二醇-

单位 日期 32 2021-01-01 37 2021-02-01 47 2021-03-01
我假设
表B
示例中缺少日期范围
2021-01-15
2021-01-29
。如果是这样,此查询应该能够返回您的预期结果:

SELECT Units, Date, StartDate, EndDate
  FROM tableA a
  LEFT JOIN tableB b
    ON a.Date <= b.EndDate
    AND MONTH(a.Date) = MONTH(b.EndDate)
    ORDER BY b.StartDate
选择单位、日期、开始日期、结束日期
从表a
左连接表b

日期不是MySQL的标准日期格式。。您是否将它们存储为
VARCHAR
?此外,还可以使用完整查询。如果我理解正确,您是否试图显示
开始日期
结束日期
范围,即使没有结果?它们被存储为日期。我在这里手动输入了日期,在SQL中它们被存储为“2021-02-01”。我希望表A中的数据,即2月(2020-02-01)的37台机组有两行,一行与开始日期2021-01-30和结束日期2021-02-12相连,另一行与开始日期2021-02-13和结束日期2021-02-26相连。(因为两个付款期都在2月份)在这种情况下,请相应地更新您的数据样本以防止误导。明白了!更正。我不明白你为什么想要这个,但是根据你已经拥有的,我相信你可以自己解决这个问题!这工作做得很好!非常感谢你。