Tengo una consulta como esta:
select * from `research_purchases` left join `company_research_articles` on `research_purchases`.`researchable_id` = `company_research_articles`.`id` and `research_purchases`.`researchable_type` = 'Modules\Analystsweb\Entities \CompanyResearchArticle' La estructura de la tabla research_purchases es así: 
No está filtrando la parte "Modules\Analystsweb\Entities\CompanyResearchArticle" y me da el resultado completo. Esta es la parte donde estoy atascado.
Originalmente quiero ejecutar una consulta de Laravel. La consulta es así:
$sales = DB::table('research_purchases')->select(DB::raw('count(research_purchases.id) as sales_count, research_purchases.created_at'))->leftJoin('company_research_articles', function ($join) { $join->on('research_purchases.researchable_id', '=', 'company_research_articles.id') ->where('research_purchases.researchable_type', '=', 'Modules\Analystsweb\Entities\CompanyResearchArticle'); }) ->where('research_purchases.created_at', '>', Carbon::now()->subMonths(11)) ->groupBy(DB::raw("MONTH(research_purchases.created_at)")) ->get();Cualquier sugerencia sería apreciada. Gracias.
ohh querido, deberías poner esto en la condición donde
si desea unir a la izquierda todos los datos sobre la condición de la tabla derecha, entonces póngalos con unión en
select * from `research_purchases` left join `company_research_articles` on `research_purchases`.`researchable_id` = `company_research_articles`.`id` where `research_purchases`.`researchable_type` = 'Modules\Analystsweb\Entities \CompanyResearchArticle'Todavía no puedo publicar un comentario, pero ¿no quiere decir DÓNDE en lugar de Y en su consulta?
Intente whereColumn .
$sales = DB::table('research_purchases')->select(DB::raw('count(research_purchases.id) as sales_count, research_purchases.created_at'))->leftJoin('company_research_articles', function ($join) { $join->on('research_purchases.researchable_id', '=', 'company_research_articles.id'); })->whereColumn([ ['research_purchases.researchable_type', '=', 'Modules\Analystsweb\Entities\CompanyResearchArticle'], ['research_purchases.created_at', '>', Carbon::now()->subMonths(11)] ])->groupBy(DB::raw("MONTH(research_purchases.created_at)")) ->get();o ambos el donde en el lado más cerca
$sales = DB::table('research_purchases')->select(DB::raw('count(research_purchases.id) as sales_count, research_purchases.created_at'))->leftJoin('company_research_articles', function ($join) { $join->on('research_purchases.researchable_id', '=', 'company_research_articles.id') ->where( 'research_purchases.researchable_type', '=', 'Modules\Analystsweb\Entities\CompanyResearchArticle') ->where('research_purchases.created_at', '>', Carbon::now()->subMonths(11)) ) })->groupBy(DB::raw("MONTH(research_purchases.created_at)")) ->get();