# PHP > PHP & Base de donnes >  [Doctrine] select distinct

## grabriel

Bonjour,

J'essaye de faire un tout simple select distinct mais je n'ai pas le rsultat escompt.

Mon cas est semblable  celui-ci :
http://trac.doctrine-project.org/ticket/575

mais la rponse est encore plus floue que la documentation.

En gros j'ai une requete qui ressemble  ca :



```
Doctrine::getTable('Enregistrement')->createQuery('e')->select('e.annee')->distinct()->orderBy('e.annee')
```

Dans le but de rcuprer que les annes de la table mais la requete gnre ressemble  a :


```
SELECT DISTINCT e.id AS e__id, e.annee AS e__annee FROM enregistrement e ORDER BY e.annee
```

La colonne id je ne l'ai jamais demande!!! Je n'en veux pas mais il me la mets comme mme.

j'ai trouv une autre personne qui avait le mme problme mais sans rponse....

http://trac.doctrine-project.org/ticket/2183

Du coup j'ai essay avec DoctrineRawSQL mais je dois mal l'utiliser car j'ai aucun rsultat de retourn.

J'ai aussi essay en ligne de commande :




> >symfony doctrine:dlq "select Distinct e.annee from Enregistrement e order by e.annee"


Et l aussi il me retourne tous les enregistrements avec un distinct id, soit toute ma table vu que id est l'identifiant. Alors que l non plus j'ai pas demand la colonne id.

Si quelqu'un peux m'clairer sur ce qui ne va pas. Ca serait tonnant qu'on ne puisse pas faire de distinct avec Doctrine. Sinon je serai oblig de refaire mon projet avec Propel... 

Merci pour toute aide.

----------


## grabriel

Bonjour,

J'ai trouv une solution bancale mais qui permet d'avoir le bon rsultat.
(en faite c'est mon stagiaire qui  trouv  ::D: ).

Si je fais a (j'ai essay plusieurs variantes) :


```

```

La requete qui est gnre : 




> SELECT DISTINCT e.id AS e__id, e.annee AS e__annee FROM enregistrement e


Au final pour avoir le bon rsultat je fais un group by.



```

```

Qui lui me retourne ce que je demande. Certes cette solution n'est pas la plus lgante ni mme une solution en elle-mme mais disons que c'est une rustine en attendant que ces Msieurs de chez Doctrine proposent une solution  ce problme.

----------


## batataw

Doctrine tant un ORM il attend a traiter des objets lis a la base de donnes.
C'est pour cela qu'il t'impose l'ID de la table.
Je crois que le mieux c'est d'utiliser DoctrineRawSQL.



```

```

----------


## grabriel

Merci encore pour cette rponse j'avais soumis ce problme sur la mailing de doctrine et la rponse tait un peu vasive. La c'esst plus concret par contre j'ai fait quelques modifs sinon j'avais des messages d'erreurs.

Ci dessous le code qui fonctionne chez moi!


```

```

la requete gnre :




> SELECT  DISTINCT e.annee AS  e__annee FROM Enregistrement e ORDER BY e.annee

----------

