计算其他表数据,并使用选择子查询

时间:2019-02-23 08:41:56

标签: php mysql laravel eloquent

我有两个表,分别是类别和产品。我必须计算表产品中的类似数据并在表类别中显示计数。我在laravel中使用此查询来显示类别详细信息。

$data = CategoryModel::orderBy('id','ASC')->get();

在核心php中,我使用以下查询在表1中显示计数的数据。

SELECT tbl_category.*,(SELECT COUNT(*) FROM tbl_product
WHERE tbl_product.v_category = tbl_category.v_name) AS TOTAL FROM tbl_category

现在,我想在laravel中实现上述查询。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我需要更多详细信息,但我假设一个产品映射到多个类别,因此将有一个名为Category的模型文件映射到表类别,并且会有Product.php模型文件映射到产品表

在您受控的代码段下方会有所帮助

App\Product::withCount('categories')->get()

请确保您的Product.php(模型文件)中包含以下内容

public function categories()
{
    return $this->hasMany('\App\Category');
}

请注意,与产品关联的类别的计数将作为集合中的Categories_count返回