如何在Laravel Eloquent中编写此MySQL查询?

时间:2019-05-03 10:35:16

标签: laravel eloquent laravel-5.8

我想跑步

SELECT count(DISTINCT `ASIN`) as results FROM crawl_results WHERE user_id = 1 and website_id = 1

并有望获得136个结果

但是

`select('ASIN')->where('user_id', Auth::id())->where('website_id', $scanID)->distinct()->count();` 

返回814表中的所有行

`select('ASIN')->where('user_id', Auth::id())->where('website_id', $scanID)->groupby('ASIN')->count();` 

返回8个结果

2 个答案:

答案 0 :(得分:2)

首先创建模型,并在需要的地方使用以下代码

 use App\CrawlResult;

CrawlResult::where('user_id',1)->where('website_id',1)->distinct('ASIN')->count('ASIN');

答案 1 :(得分:1)

您应该这样编写查询:

DB::table('crawl_results')
->select(DB::raw('COUNT(DISTINCT(ASIN)) as results')
->where('user_id', 1)
->where('website_id',1)
->get();