Laravel DB加入查询

时间:2018-01-15 06:16:34

标签: php mysql laravel

我已经写了一个查询来获取每个用户他/她的最后一个组织名称,但它只返回组织表的最后一个组织名称。我该如何为每个用户开发此查询。 这是我的查询。

 $org=DB::table('careers')
            ->join('users','careers.user_id','=','users.id')
            ->pluck('org_name')
            ->last();
    print_r($org);

2 个答案:

答案 0 :(得分:0)

使用DB::raw获取记录。

$org=DB::raw("SELECT users.name, t.org_name 
              FROM users JOIN (SELECT org_name 
                               FROM careers 
                               WHERE users.id = careers.user_id 
                               ORDER BY created_at DESC 
                               LIMIT 1) as t ON t.user_id = user.id");

希望这可行。

答案 1 :(得分:0)

您可以使用latest()first()方法获取最后1条记录

$org=DB::table('careers')
        ->join('users','careers.user_id','=','users.id')
        ->latest()
        ->first()
        ->pluck('org_name');

OR

使用latest()take()方法

$org=DB::table('careers')
        ->join('users','careers.user_id','=','users.id')
        ->latest()
        ->take(1)
        ->pluck('org_name');