J'ai une table formation ayant deux (2) enregistrements. Je voudrais obtenir le dernier diplome obtenu par chaque membre. Cependant , lorsque j'execute ma requete, elle me renvoie deux fois le même enregistrement.
1 2 3 4 5 6 7 8 9 10
|
public function formationCvthque(){
$r = $this->createQuery('m')->
SELECT ('Max(f.niveau) AS nv , f.diplome AS diplome')->
leftJoin('m.Formation f')->
WHERE ('m.typemembre =1')->
groupBy ('f.fkmembre');
return $r->execute();
} |
dans mon template
1 2 3 4 5 6 7
| <ul>
<?php foreach ($derniereFormation as $fv) :?>
<li>
<?php echo $fv->diplome;?>
<?php endforeach; ?>
</li>
</ul> |
mon action
1 2 3 4 5
|
public function executeVoscriteres(sfWebRequest $request) {
$this->derniereFormation = Doctrine_Core::getTable('membre')->formationCvthque();
} |
Voici la requete sql generée dans l'onglet sql Queries de la debug bar de symfony :
SELECT MAX(f.niveau) AS f__0, f.diplome AS f__1 FROM Membre m LEFT JOIN Formation f ON m.idcandidat = f.fkmembre WHERE (m.typemembre = 1) GROUP BY f.fkmembre
Lorsque j'execute cette requete dans phpMyAdmin par exemple , elle affiche les infos sur tous les deux enregistrements de la table.
Partager