Laravel Mysql - display the amount of records in a Join query

Asked

Viewed 87 times

-1

I have the following query:

$empresas = DB::table('empresas')
    ->join('departamentos', 'empresas.id', '=', 'departamentos.empresas_id')
    ->join('eventos', 'eventos.departamentos_empresas_id', '=', 'eventos.id')
    ->select(   'empresas.name as empresa', 'departamentos.name as departamento','eventos.nome as evento' 
    )
    ->get();

That displays a table with the result:

Empresa: 1, Departamento:A, Quantidade de Eventos:    , Número de Inscritos:   ,

Empresa: 2, Departamento:A, Quantidade de Eventos:    , Número de Inscritos:   ,

Empresa: 3, Departamento:B, Quantidade de Eventos:    , Número de Inscritos:   ,

Empresa: 4, Departamento:C, Quantidade de Eventos:    , Número de Inscritos:   ,

And so on, I would like to know how to get the number of events and the number of subscribers in the same query.

1 answer

0


Try to do something like this:

  $empresas = DB::table('empresas')
                    ->join('departamentos', 'empresas.id', '=', 'departamentos.empresas_id')
                    ->join('eventos', 'eventos.departamentos_empresas_id', '=', 'eventos.id')
                    ->select('empresas.name as empresa', 'departamentos.name as departamento','eventos.nome as evento',
                        DB::raw('COUNT(eventos.departamentos_empresas_id) as qtdeventos')
                    )->get();

DB::raw('COUNT(events.department_empresas_id) as qtdeventos')

It is for you to get the COUNT in the table you want. Now just apply in your Query.

  • Thanks for the answer, Douglas! In fact, the way you posted it works, changing the 'Strict' to false, in the "config/database". But I would really like a way to display the results, without modifying the config/database, because I read that this should be the last resort, for security reasons.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.