这是表格
表:学生历史记录
id | date | name | grade | subject
---- | ------ |------ |--------|------
1 | 5/1/2017 |Mark | a | science
2 | 7/1/2016 |Earl | c | english
3 | 2/1/2015 |John | a | english
4 | 6/1/2016 |Mike | c | science
5 | 4/1/2016 |Matt | e | english
6 | 2/1/2017 |Mark | d | science
7 | 3/1/2016 |Earl | a | english
8 | 7/1/2015 |John | d | english
9 | 8/1/2016 |Mike | c | science
我想要发生的事情是只为有英语成绩的学生填写最新成绩。它应该像这样显示
7/1/2016 Earl c
7/1/2015 John d
4/1/2016 Matt e
我得到了这个,但它没有给出最新的基于
$englishgrades = StudentHistory::('日期', '姓名', '成绩')
->where('主题', '英语')
->groupBy('名称')
->get();
请帮忙
最佳答案
您可以执行降序并接收第一行,这将是数据库中的最后一行。但问题是你存储日期的方式是错误的。正如@Strawberry 所提到的,它不清楚日期或月份。我建议您使用 mysql datetime 选项,然后您可以简单地执行我在下面发布的代码。在这种情况下,您可能必须以正确的方式解析每个日期
$englishgrades = StudentHistory::select('date', 'name', 'grade')
->where('subject', 'english')
->groupBy('name')
->orderBy('date','desc')
->get();
关于php - 查询以检索 Laravel 5.2 中历史表中的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910090/