Bonjour à tous,
Je souhaite optimiser mon code php en créant des requêtes postgresql plus efficace que mes foreach de plusieurs requêtes pour faire mes stats.
J'ai deux tables que j'ai pris pour illustrer mon problème :
table marques :
table stock :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 idmarque | marque 1 | Peugeot 2 | Renault 3 | Citroën
Quand j'exécute la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 idstock | immatriculation | idmarque | site 1 | 123 AB 456 | 1 | 140 2 | AF-123-AB | 2 | 140
J'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT m.marque, COUNT(s.idstock) AS nbre FROM marques m LEFT JOIN stock s ON m.idmarque = s.idmarque GROUP BY m.marque
Quand j'exécute la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 marque | nbre Renault | 1 Citroën | 0 Peugeot | 1
J'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT m.marque, COUNT(s.idstock) AS nbre FROM marques m LEFT JOIN stock s ON m.idmarque = s.idmarque WHERE s.site = 140 GROUP BY m.marque
Ce résultat est tout à fait logique mais j'aimerais une requête qui me donnerai 0 pour les marques non présente dans le site 140.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 marque | nbre Renault | 1 Peugeot | 1
J'espère que je me fais bien comprendre.
Merci d'avance pour votre aide,
Emmanuel
Partager