2017-10-16 68 views
0

我正在使用Laravel雄辩并做了左连接。如何限制左连接权表的结果?

但是,我需要一个,两个或三个右表的结果。

我该如何做到这一点?

代码:

$registros = $registros->leftjoin('onetable','onetable.propterty_id', '=', 'second_table.id'); 
+0

添加完整的代码,以便更好地理解 –

+0

我不确定我关注; 'leftJoin'从任何父表的结果中将'onetable'的列连接到每一行; '极限'并不适用于此。如果您只需要父表中的1,2或3行,只需在基本查询中使用“limit(3)”即可。 –

+0

@TimLewis我需要来自父表的所有结果,并且只需要来自连接表的3个结果。 –

回答

0

我没有测试这一点。但是你可以做同样的事情到这个

$users = DB::table('users') 
     ->select('users.id','users.name as user_name','users.last_name as user_last_name', 'users.email as user_email','users.dob','user_mobile.mobile_number') 
     ->join('user_mobile', function ($join) { 
      $join->on('users.id', '=', 'user_mobile.user_id') 
       ->where('user_mobile.is_primary',1) 
       ->limit(3); 
     }) 
     ->where('users.is_admin', 0) 
     ->get(); 

注意:不是作为一个答案。只是一个参考。使用CZ IM一样,但没有>limit(3);

+0

谢谢,但我的洞查询已经写在雄辩,所以我会通过,但感谢你的时间。 –

0

如回答@Tim刘易斯,我将使用关系,因为我的查询都写在侃侃而谈。

+0

当涉及到每个父母的n条记录时,它可能不会像设想的那么容易,因为如果你对关系进行限制,它只会返回所有父母的3个孩子,而不是像你期望的那样每个父母3个孩子。我发现这个资源在过去是非常宝贵的... https://softonsofa.com/tweaking-eloquent-relations-how-to-get-n-related-models-per-parent/这有助于解决这个问题 – user3158900