如何在laravel中获取相同外键的最新行

时间:2017-01-15 12:27:39

标签: laravel

我尝试过使用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

2 个答案:

答案 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();