Je veux obtenir le plus haut Eloquent renvoie toutes les entretenances à ma vue: p> SQL renvoyant le plus haut entretence_id code> pour
Equipement code> pour afficher à un utilisateur. Je peux le faire dans SQL, mais pas dans Eloquent ou QueryBuilder.
MAINTENCE_ID < / code> pour
Equipement code>: p>
4 Réponses :
Essayez-le:
Maintence::join( DB::raw( '(select max(id) as id,equipament_id as equipament_id from maintences group by equipament_id order by id desc) sub' ), 'sub.equipament_id', '=', 'equipaments.id') ->get(['maintences.*']);
Renvoyer cette erreur: "SQLSTAT [42S22]: Colonne non trouvée: 1054 Colonne inconnue 'Equipaments.id' in 'On Clause' (SQL: SELECT Maintences code>. * À partir de
Maintenance Code> Joindre interne (Sélectionnez max (ID) comme ID, equipent_id comme Equipement_id du groupe de maintenages par equipent_id Commande par ID Desc) Sous sur
Sub code>.
Equipement_id > =
Equipaments code>.
id code>)
avoir le même problème ici . Toujours rechercher problème en utilisant le plus simple terme possible. Ça marche! :) p>
sur le problème. Pourquoi ID Max et ne PAS DERNIER LA VERSION DE L'EQUIPAMENT, par exemple? Vérifiez ce que vous voulez vraiment parce que l'ID de séquence, par exemple, n'est nécessairement plus mis à jour. P>
Merci pour votre aide Rafael. Je vérifierai cela la prochaine fois!
Je pense que c'est ce que vous recherchez: i suppose que vos noms de table sont équipements code> et
maintenances code>, si Non, veuillez ajuster les noms de table en conséquence dans la requête fournie. P> p>
Je ne vous recommande pas d'utiliser la requête interne à l'intérieur de jointure clausule ou de sélectionnez une ... il l'exécutera pour "chacune" lignes. C'est mieux que vous déclarez sur la catégorie modèle une relation qui obtiendra la dernière. Voir le code ci-dessus: alors vous pouvez utiliser comme ceci: p>
Je vais l'essayer! Merci de votre aide.