Bonjour à tous,

J'aurai une question pour optimiser les requêtes doctrine.
Pour faire simple la base se compose d'une table article avec un id et une table tarif avec les champs :
id
idarticle
seuil
prix
devise

Ma requête est très simple je cherche tous les articles qui ont un prix en Euro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Doctrine_Query::create()->from('article')
->innerJoin('article.Tarif tarif')
->where('tarif.devise = ?', '0')
->execute();
La requête fonctionne mais en mode debug j'ai plus de 300 requetes qui s'effectue, la requete normal :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT a.id AS a__id, a.lot AS a__lot, a.ref AS a__ref, a.reflama AS a__reflama, a.refoem AS a__refoem, a.designation AS a__designation, a.idfamille AS a__idfamille, a.idcategorie AS a__idcategorie, a.couleur AS a__couleur, a.contenance AS a__contenance, a.poids AS a__poids, a.nbpages AS a__nbpages, a.etat AS a__etat, a.pack AS a__pack, a.pcb AS a__pcb, t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM article a INNER JOIN tarif t ON a.id = t.idarticle WHERE (t.devise = '0')
Et plein d'autre requêtes s'ajoutent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '2')
0.00s, "doctrine" connection
 
SELECT t.id AS t__id, t.idarticle AS t__idarticle, t.seuil AS t__seuil, t.prix AS t__prix, t.devise AS t__devise FROM tarif t WHERE (t.idarticle = '3')
0.00s, "doctrine" connection
Quelqu'un à une idée d’où provienne ces requêtes et comment les éviter ?

Merci