Как мне написать этот запрос MySQL в Laravel Eloquent? - PullRequest
1 голос
/ 03 мая 2019

Я хочу запустить

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 ]

2 голосов
/ 03 мая 2019

Сначала создайте модель и используйте приведенный ниже код там, где вам нужно

 use App\CrawlResult;

CrawlResult::where('user_id',1)->where('website_id',1)->distinct('ASIN')->count('ASIN');
1 голос
/ 03 мая 2019

Вы должны написать запрос так:

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