0

以下に示すようなクエリがあります。

DB::raw('select SUM(review_details.param_value) / COUNT(review_headers.id) AS avgUserReview')データを導入または選択し、このクエリだけにいくつかの WHERE 句を適用したいと思います。

$data = BusinessDetail::select(
    'business_details.id as businessId',  
    'business_details.name as description', 
    'cities.description as city',
    'countries.description as country',
    'sectors.description as sector'
)->join('sectors', 'business_details.sector_id', '=', 'sectors.id')
->join('countries', 'business_details.country_id', '=', 'countries.id')
->join('cities', 'business_details.city_id', '=', 'cities.id')
->leftJoin('review_headers', 'business_details.id', '=', 'review_headers.business_detail_id')
->leftJoin('review_details', 'review_headers.id', '=', 'review_details.review_header_id')
->leftJoin('rate_params', 'review_details.rate_param_id', '=', 'rate_params.id')
->leftJoin('param_types', 'rate_params.param_type_id', '=', 'param_types.id')
->groupBy('business_details.id');

以下のように別の SELECT ステートメントを導入し、WHERE 句をその STATEMENT のみに適用したいと思います。

DB::raw('select SUM(review_details.param_value) / COUNT(review_headers.id) AS avgUserReview')

WHERE句があります

->where('review_details.param_value', '<>', NULL)
->where('review_details.param_value', '<>', '')
->whereIn('rate_param_id', [1, 3, 4, 5])
->where('review_headers.review_status', '=', 1)

私は次のようなことを意味しますDB::raw('select SUM(review_details.param_value) / COUNT(review_headers.id) AS avgUserReview from review_details where conditions')

私は試しDB::raw('select SUM(review_details.param_value) / COUNT(review_headers.id) AS avgUserReview from review_details where review_headers.review_status = 1')ましたが、得ていますSyntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select SUM(review_details.param_value) / COUNT(review_headers.id) AS avgUserRevi'

4

0 に答える 0