我尝试过使用max和groupby,但它没有做任何事情
$posts = Post::join('immunizations', 'immunizations.foreign_id ', '=', 'users.id')
->select(max(['immunizations.foreign_id ']), 'immunizations.*')
->groupBy('foreign_id ')
->get();
id vacine_id foreign_id
1 1 6
2 2 6
3 1 8
4 2 8
如何获取相同外键的最新行
它应该显示类似的东西
id vacine_id foreign_id
2 2 6
4 2 8
但我得到的是这个
id vacine_id foreign_id
1 1 6
4 2 8
答案 0 :(得分:0)
先排序,然后使用$posts = $posts->unique('foreign_id');
答案 1 :(得分:0)
尝试更改
->select(max(['immunizations.p_id']))
到
->select('max(immunizations.p_id)')
总之它看起来应该是
$posts = Post::join('immunizations', 'immunizations.foreign_id ', '=', 'users.id')
->select(['max(immunizations.p_id)'])
->groupBy('foreign_id')
->get();