【发布时间】:2018-06-30 06:43:29
【问题描述】:
我有一个包含 3 列(id、ref_number、pay_date)的表Schedule。每个 ref_number 每个月都有一个 pay_date。所以表格看起来像这样:
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 天)之间具有 pay_date 的每个 ref_number 的最早记录。下面的查询在 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 并且 Group By 会按预期运行,但是无需更改,还有其他方法可以解决这个问题吗?
这个查询的雄辩等价物是什么?有或没有 groupby。
【问题讨论】:
标签: php mysql laravel eloquent laravel-5.4