如何在拉拉维尔中对多个SQL查询求和?



如何将多个查询求和并将它们发送到刀片文件? 我有一个查询并从数据库中检索"首选项产品",因此根据它们,我也需要检索产品。这是我的控制器代码:

$preferences = DB::table('preferences')->where('customerId', $req->id)->get();

因此,根据上述查询的"首选项",我应该检索另一个数据,因此我制作了一个foreach来提取$preferencesProducts,然后编写查询并将其保存到名为$preferences的变量中

foreach($preferences as $preference)
{
$preferencesedProducts= $preferencesedProducts.DB::table('products')->where('productsubCategory', $preference->preference)->get();
}

当它进入循环时,它会进行多个查询,那么如何将它们相加并发送到刀片文件?

我的代码:

return view('/customers/customerHome')->with('preferencesedProducts', $preferencesedProducts);

您可以使用首选项查询结果上的pluck来获取首选项数组并使用whereIn查询产品:

$preferences = DB::table('preferences')->where('customerId', $req->id)->get();
$preferencesedProducts = DB::table('products')->whereIn('productsubCategory', $preferences->pluck('preference'))->get();

最新更新