Laravel 其中等于子查询SELECT
我只是想知道如何将这个查询转换成laravel雄辩的查询Laravel 其中等于子查询SELECT,laravel,eloquent,laravel-eloquent-resource,Laravel,Eloquent,Laravel Eloquent Resource,我只是想知道如何将这个查询转换成laravel雄辩的查询 "SELECT * FROM vw_part_supplier LEFT JOIN purchase_request_detail ON vw_part_supplier.part_supp_id = purchase_request_detail.prd_part_supp_id WHERE ( part_status = 'ACTIVE'
"SELECT * FROM vw_part_supplier
LEFT JOIN purchase_request_detail ON vw_part_supplier.part_supp_id = purchase_request_detail.prd_part_supp_id
WHERE (
part_status = 'ACTIVE'
AND part_supp_id not IN (SELECT prd_part_supp_id FROM purchase_request_detail WHERE prd_pr_id = $id)
AND part_supp_supplier_id = (SELECT pr_supplier_id FROM purchase_request WHERE pr_id = $id)
AND part_prod_grp_id = (SELECT pr_prod_grp_id FROM purchase_request WHERE pr_id = $id)
AND part_supp_ratio!=0)
ORDER BY part_name,part_code,part_subcode";
我已经完成了这个角色,但直到最后一刻才完成。
任何帮助都将不胜感激。谢谢大家! 我相信你已经尝试并达到了“不在哪里”的地步,这是一个棘手的问题,但我也相信你可以多搜索一点来找到答案 无论如何,我将为您解决一行,其余的只需遵循相同的思维方式:
AND part_supp_id not IN (SELECT prd_part_supp_id FROM purchase_request_detail WHERE prd_pr_id = $id)
我假设您在这里遇到的问题是嵌套的select,这就是它阻止您的原因
->whereNotIn('part_supp_id', function ($query) use($id) {
$query->from("purchase_request_detail")
->where("prd_pr_id", $id)
->select("prd_part_supp_id");
})
我已经解决了这个问题
public function getAvailPartsList($pr_id = 0){
$ids = $this->model
->select('pr_supplier_id','pr_prod_grp_id')
->from('purchase_request')
->where('pr_id','=',$pr_id)
->get();
$pr_supplier_id = $ids[0]['pr_supplier_id'];
$pr_prod_grp_id = $ids[0]['pr_prod_grp_id'];
$result = $this->model->select('*')
->from('vw_part_supplier')
->leftJoin('purchase_request_detail', 'vw_part_supplier.part_supp_id','=','purchase_request_detail.prd_part_supp_id')
->where('vw_part_supplier.part_status', '=', 'ACTIVE')
->whereNotIn('vw_part_supplier.part_supp_id', function ($y) use ($pr_id){
$y->select('prd_part_supp_id')
->from('purchase_request_detail')
->where('prd_pr_id', '=', $pr_id);
})
->where('vw_part_supplier.part_supp_supplier_id', '=', $pr_supplier_id)
->where('vw_part_supplier.part_prod_grp_id', '=', $pr_prod_grp_id)
->where('part_supp_ratio','!=',0)
->get();
return $result;
}
无论如何,感谢您的回复。因此,这不是编码服务。请分享您的最佳尝试和遇到的具体错误。是的,可以使用Eloquent query builder来完成。我并不是说SO是一种编码服务,我所要求的只是一些帮助,因为我认为这就是SO,我的问题是基于我在这些问题中看到的善意,用户甚至没有显示他/她遇到的任何错误。我已经用我自己的解决方案解决了这个问题,无论如何谢谢你的回复。