我有一个有3列(id,参考号,付款日期)的表格时间表。每个参考号每个月都有一个付款日期。所以这张table看起来像这样:
id | ref_number | pay_date
-----------------------------
1 | A001 | 2018-06-29
1 | A001 | 2018-07-29
1 | A002 | 2018-06-30
1 | A002 | 2018-07-30
1 | A002 | 2018-08-30
1 | A003 | 2018-06-29
我只想为从今天到某个日期(从今天起30天或31天)之间有付款日期的每个参考号获取最早的记录。下面的查询在mysql中运行良好(稍后我会动态传递日期)。
SELECT id,ref_number,MIN(pay_date) FROM schedule
WHERE (pay_date BETWEEN '2018-06-30' AND '2018-07-30')
GROUP BY ref_number
我知道我们可以在数据库配置文件中将mysql的“strict”改为false,groupby的行为也会如预期的那样,但是不必改变这一点,还有其他方法可以解决这个问题吗?
对于这个问题,什么是有说服力的等价物?有没有groupby。
1条答案
按热度按时间cfh9epnr1#
在搜索了一段时间后,我发现了一个使用嵌套select语句的答案,并在laravel中进行了尝试。它完全符合我的要求。下面是一段美妙的代码: