Laravel-根据“字段及其关系模型字段”之间的条件过滤模型

时间:2020-10-04 10:15:31

标签: php laravel eloquent orm subquery

我拥有这两种具有一对一关系的模型。

“产品”

  • id
  • 名称
  • minimum_required

“ product_data”

  • id
  • product_id
  • 价格
  • oh_hand

我想获取product_data的数量,其on_hand小于 其相关产品的minimum_required。

我尝试了子查询,但仍然无法弄清楚。我想要的查询可能看起来像这样。

$low_products_count = ProductDetail::where('on_hand', '<', Product::select('minimum_required')->count();

2 个答案:

答案 0 :(得分:1)

您可以联接表,然后使用“ whereColumn”:

 $low_products_count =Product::join('product_data','product_data.product_id','=',
    'products.id')->whereColumn('product_data.on_hand','<','products.minimum_required')->get();

答案 1 :(得分:1)

我不擅长口才,所以在这里,我与查询生成器分享了我的知识。

您可以这样做->

$low_products_count=DB::table('products')
                    ->join('product_data','product_data.product_id','=',
                     'product.id')
->where('product_data.on_hand','<','products.minimum_required')->get();

您可以使用这个概念。