J'essaie sans succès. Cela ne fonctionne pas: p> Je m'attends à obtenir la même sortie que dans MySQL (Workbench).
S'il vous plaît aider! Merci d'avance. p> p>
3 Réponses :
Essayez ceci:
$output = TableName::whereIn('id', function($query){ $query->select(\DB::raw( 'SELECT * FROM TableName WHERE id IN ( SELECT MAX(id) FROM TableName GROUP BY var1, var1, var1);')) }); dd($output->toSql(), $output->getBindings());
Merci Mateus, je ne peux pas faire ce code travailler pour moi. La proposition d'Andrew fonctionne comme prévu: $ Sortie = Nom :: Sélectionnez (Sélectionnez ('*') -> Whareraw ('ID1 dans (Sélectionnez Max (ID2) dans le groupe de noms de Var1, Var2, Var3)') -> Obtenir (); Merci encore!
@techienomics Vous pouvez essayer ceci;
$output = TableName::select('*') ->whereRaw('id1 in (SELECT MAX(id2) FROM tableName group by var1,var2,var3)') ->get();
Merci Andrew's! Ça marche pour moi. Merci encore!
De rien. S'il vous plaît faites bien de marquer cela comme la solution i> b> pour aider les autres.
Pourriez-vous essayer celui-ci
$output = TableName::whereIn('id', function($query){ $query->select(\DB::raw('SELECT MAX(id) FROM TableName')) ->groupBy(['var1', 'var1', 'var1']) })->get();
Merci Jovs, il est manquant d'entrer dans $ Query-> Select je suppose. La proposition d'Andrew fonctionne comme prévu: $ Sortie = Nom :: Sélectionnez (Sélectionnez ('*') -> Whareraw ('ID1 dans (Sélectionnez Max (ID2) dans le groupe de noms de Var1, Var2, Var3)') -> Obtenir (); Merci encore!
Quelle est votre sortie sur mysql (Workbench) alors? Peut-être que nous nous montrons qui nous aideront à vous aider.