2015-09-01 52 views
0

是否可以將以下兩個查詢合併爲一個?Laravel結合數據庫查詢

$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'); 

感謝您的幫助!

+0

@JosephSilber - 從第一個查詢中獲取session_id值,然後在第二個查詢中使用它來獲取owner_id。我希望能夠將第一個查詢作爲第二個查詢的一部分。這些表格沒有相同的列。 – Ragnarsson

回答

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個獨立的語句。我只是格式化它,因爲我認爲這樣更好。

+0

太棒了!完美的作品。謝謝你的幫助。 – Ragnarsson