Laravel组合数据库查询

时间:2015-09-01 13:24:20

标签: laravel laravel-5

是否可以将以下两个查询合并为一个?

$session_id = DB::table('oauth_access_tokens')->where('id', '=', $access_token)->value('session_id');
$owner_id = DB::table('oauth_sessions')->where('id', '=', $session_id)->value('owner_id');

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要的是子查询:

$query = DB::table('oauth_sessions');

$query->where('oauth_sessions.id', function ($query) use ($access_token) {
    $query->from('oauth_access_tokens')
          ->where('oauth_access_tokens.id', $access_token)
          ->select('session_id');
});

$owner_id = $query->value('owner_id');

您可以将其全部链接,而不是使用3个单独的语句。我只是格式化它,因为我认为它读得更好。

相关问题