CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 06-10-2015 18:40:14

visualapproch
Chouquette
Date d'inscription: 11-09-2015
Messages: 3

[RESOLU] Sous Requete

Bonjour
J'ai la requete SQL suivante qui fonctionne :

Code: php

  1. SELECT *
  2.   FROM
  3.        (
  4.   SELECT idprospects,prospect_entreprise,MAX(suivis.action_id)as test
  5.   FROM `prospects`
  6.   INNER JOIN suivis
  7.   ON suivis.prospect_id = idprospects GROUP BY idprospects
  8.         )
  9.    AS t
  10. WHERE t.test = 1

J'essaye de la reproduire en cakephp

1) j'ai refais la requête select du milieu qui fonctionne correctement

Code: php

  1. $query = $this->Prospects->find();
  2.     $test = $query->func()->max('c.action_id');
  3.     $query->select(['idprospects','prospect_entreprise','test'=>$test]);
  4.       $query->hydrate(false);
  5.     $query->join([
  6.       'table' => 'suivis',
  7.       'alias' => 'c',
  8.       'type' => 'INNER',
  9.       'conditions' =>['c.prospect_id = prospects.idprospects'],
  10.     ]);
  11.     $query->group(['idprospects']);

2)Je ne sais pas comment trier sur les résultats de cette première requête le champ test = 1

Merci de votre aide

Dernière modification par visualapproch (12-10-2015 12:48:31)

Hors ligne

 

#2 12-10-2015 11:10:56

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: [RESOLU] Sous Requete

Bonjour,
Il faut que tu rajoutes la clause where dans ton premier select, par contre pourquoi tu n'utilises pas le contain pour la table liée ?


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

#3 12-10-2015 12:44:21

visualapproch
Chouquette
Date d'inscription: 11-09-2015
Messages: 3

Re: [RESOLU] Sous Requete

Bonjour
Merci, cette solution a l'air de bien fonctionner.
Je découvre CakePHP pour un projet que je dois remettre au client en fin de mois et j'emploie les solutions qui me sont les plus rapides à mettre en place (j'avais même un moment envisagé d'exécuter directement la requête en SQL...). Je vais essayer de remplacer ma jointure par contain.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr