Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut à tous,
je voulais savoir si il était possible de spécifier les champs du SELECT dans une requête, ne pas faire un SELECT* afin d'optimiser les requête.
De plus j'ai vu que pour utiliser plusieur tables avec jointures il fallait faire
$select = $this->getDbTable()->select(Zend_Db_Table::SELECT_WITH_FROM_PART); $resultSet=$this->getDbTable()->fetchAll($select ->setIntegrityCheck(false) // ->from(array('V'=>'video')) ->join(array('V'=>'video'),'V.Id_Defis=Defis.Id_Defis')
Si ce code est bon pouvez vous m'indiquez aussi dans ce cas là comment faire un select spécifique.
PS
Même en ajoutant le from
->from(array('D'=>'defis'), array('D.Titre_Defis','D.Id_Defis'))
j'obtient toujours un SELECT *, V*....
Dernière modification par Sishare (28-09-2010 12:00:51)
Hors ligne
En utilisant l'option Zend_Db_Table::SELECT_WITH_FROM_PART, Zend va automatiquement t'ajouter le champs SQL_WILDCARD (ie : *) dans les colonnes à récupérer
2 solutions donc :
- Soit tu n'utilise pas cette option et tu ajoutes à la main la table vers laquelle faire ta requête avec un from('matable', array('colone1', 'colone2'));
- Soit tu fait un reset(Zend_Db_Table_Select::Column) sur ton objet Zend_Db_Table_Select pour effacer la liste des colonnes à récupérer.
Hors ligne