我是 Laravel 新手,如何使用 Laravel Eloquent 执行以下 mysql 查询。
SELECT p.*,
(
SELECT COUNT(*) FROM product_images AS pi WHERE pi.productID = p.productID
)AS totalImages
FROM products AS p
最佳答案
您可以使用DB::raw
在选择中注入(inject)子查询:
Product::from('products p')
->select(DB::raw('p.*, (SELECT COUNT(*) FROM product_images AS pi WHERE pi.productID = p.productID) AS totalImages'));
还有一种选择是设置 one-to-many Product
模型和 Image
模型之间的关系:
class Product extends Eloquent {
public function images()
{
return $this->hasMany('Image');
}
}
之后,您可以像这样获取图像计数:
Product::find($productId)->images()->count();
关于mysql - 如何在 Laravel 中使用子查询计算产品图片数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517317/