cómo expresar este código en el generador de consultas. Estoy usando Laravel 6.
SELECT * FROM feedback GROUP BY noTicket having count(`status`) < 2Mi código:
$feedback = DB::table('feedback') ->groupBy('noTicket') ->having('count(status)', '<', 2) ->get();Código de error:
SQLSTATE[42000]: Syntax error or access violation: 1055 'sifora.feedback.idFeedback' isn't in GROUP BY (SQL: select * from `feedback` group by `noTicket` having `count(status)` < 2)¿Qué está mal con mi código? Parece una coincidencia entre el código sql y el generador de consultas.
Gracias
Esta es la versión de trabajo de la consulta.
select noTicket from feedback group by noTicket having count(status) < 2;Este es el generador de consultas;
return DB::table('feedback') ->groupBy('noTicket') ->having(DB::raw('count(status)'), '<', 2) ->pluck('noTicket'); // you may replace this with get()/select()Aquí el código completo. Muchas gracias a Ersoy
$getArray = DB::table('feedback') ->groupBy('noTicket') ->having(DB::raw('count(status)'), '<', 2) ->pluck('noTicket'); $feedback = DB::table('feedback') ->whereIn('noTicket', $getArray)->get();$feedback = DB::table('feedback') ->selectRaw('feedback.*, count(status) as count_status') ->groupBy('noTicket') ->havingRaw('count(status) > ?', [2]) ->get();También existe un modo estricto, puede deshabilitarlo en config/database.php
'connections' => [ 'mysql' => [ 'strict' => false ] ]Pero no te recomiendo que lo hagas. Consulte esto https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html aquí obtendrá más información sobre cómo funciona el grupo.