Besoin d'aide ?

SubQuey et WhereDate

  • Avatar de PLJerem
    Membre depuis :
    10/01/2019
    Messages :
    23

    Bonjour,

    J'aurais besoin d'aide pour l'écriture d'une requête SQL.
    J'ai actuellement une méthode qui fonctionne en deux requêtes, je voudrais savoir s'il est possible de tout faire en une seule.

    En gros je souhaite récupérer tous les enregistrements d'une table en filtrant sur la colonne "date_suivante" les enregistrements en fonction de la valeur unique dans une autre table "resultats".

    // Méthode qui fonctionne
    $date = (Resultats::select('updated_at')->where('slug', '=', 'TYPE1')->firstOrFail())->updated_at->format('Y-m-d');
    $rows = Maintenance::whereDate('date_suivante', '<=', $date)->get();

    // Tentative en utilisant une seule requête avec sous requête
    $rows = Maintenance->where("date_suivante", "<=", function(Builder $query) {
    $query->select("updated_at")
    ->from(with(new Resultats)->getTable())
    ->where("slug", "=", "TYPE1")
    ->limit(1);
    })
    ->get();

    Tout naturellement j'ai le message "Object of class Closure could not be converted to string".

    Je suis preneur de tout conseil :)

Vous ne pouvez pas répondre à ce sujet.