gpt4 book ai didi

php - 如何在 Laravel 中合并两个查询?

转载 作者:行者123 更新时间:2023-11-30 21:50:43 26 4
gpt4 key购买 nike

查询1:

 $image= DB::table('products_photos')->groupBy('filename')
->get(['filename', DB::raw('MAX(id) as id')]);

这是我为所有存储的记录检索单个图像的查询。

查询2:

$verifiedValues= priceInfo::join('productDescription', 
'productDescription.productId', '=', 'productPriceDetails.productId')
->join('productAdditionalInformation',
'productAdditionalInformation.productId', '=',
'productPriceDetails.productId')
->join('products_photos', 'products_photos.productId', '=',
'productAdditionalInformation.productId')
->select('productPriceDetails.SKUID','productDescription.modelName')
**->select($image)**
->where('productPriceDetails.nonliveStatus', '=',
"QCVerified")-

>where('productAdditionalInformation.nonliveStatus','=',"QCVerified")
->where('productDescription.nonliveStatus','=',"QCVerified")
->where('products_photos.nonliveStatus','=',"QCVerified")
->where('productPriceDetails.listingStatus','=',"Inactive")
->get();

这是我的查询,我在其中加入了多个表并需要将 query1 与 query2 结合起来。

SQLSTATE[HY093]:参数编号无效:命名参数和位置参数混合

合并两个查询时出错

最佳答案

恕我直言,您有两个选择。要么您尝试使用 merge() 方法合并两个生成的集合,如通过 Laravel :: Combine two DB query objects 解释的那样

或者您使用联接将两个查询合并为一个查询。要保留您的 Builder 对象(无需 get()),您可以使用如下内容:

$single_query = DB::table('first_query')
->join(DB::raw('('.$second_query->toSQL().') alias'), 'id', 'alias.id')
->mergeBindings($second_query)
->get();

如果您没有任何参数,您可以省略 mergeBindungs() 子句。

关于php - 如何在 Laravel 中合并两个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47406349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com