Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-03-2011 00:07:11

kozher
Membre
Date d'inscription: 30-11-2010
Messages: 10

optimisation JOIN

Bonjour,

J'aimerais transposer la requête SQL suivante :

SELECT personne.pers_id, personne.pers_nom, personne.pers_prenom
FROM personne
INNER JOIN inscription ON personne.pers_id = inscription.elv_id
WHERE (icp_date_evaluation IS NULL)


Voici le mon code PHP/ZF :

class Table_Personne extends Zend_Db_Table_Abstract
{
    protected $_name = 'personne';
    protected $_primary = 'pers_id';

    public function getPersonneNonEvalue(){
        $select = $this->select()
                ->setIntegrityCheck(false)
                ->from($this, array('pers_id', 'pers_nom', 'pers_prenom'))
                ->join('inscription', 'personne.pers_id = inscription.elv_id')
                ->where('icp_date_evaluation IS NULL');
        return $this->fetchAll($select);
    }
}

Par contre, dans le log MySQL voilà ce que j'ai :

SELECT `personne`.`pers_id`, `personne`.`pers_nom`, `personne`.`pers_prenom`, `inscription`.*
FROM `personne`
INNER JOIN `inscription` ON personne.pers_id = inscription.elv_id
WHERE (icp_date_evaluation IS NULL)

Comment éviter l'appel à 'inscription.*' ?

Merci, Yohann

Hors ligne

 

#2 07-03-2011 09:34:03

Ithier
Membre
Date d'inscription: 05-01-2010
Messages: 85

Re: optimisation JOIN

Le troisième paramètre (facultatif) de la fonction join est comme le deuxième paramètre de from. Tu peux donc ainsi limiter la liste des rubriques que tu veux dans le select.

->join('inscription', 'personne.pers_id = inscription.elv_id', array())

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages