Requête optimisée

Répondre
Pegasus
le 30/04/2005 à 12:38
Pegasus
table en_vente :
_____________________________
| pseudo | quantite | produit | prix |
|----------|-----------|---------|------|
|...pseu1 |......2......|...livre..| 100 |
|...pseu2 |......5......|...livre..| 150 |
|...pseu1 |......2......|...livre..| 110 |
|...pseu1 |......3......|.chaise.| 200 |
|...pseu1 |......2......|.chaise.| 190 |
-----------------------------------------

Voila imaginons que je sois dans mon profil "pseu1"
Je veux voir tout ce que j'ai en vente.
J'ai donc visuellement :
4 livres et 5 chaises
J'ai rien trouvé de probant et d'optimisé pour afficher ça en une requête sql, j'aimerais eviter les boucles car je dois faire cette recherche dans une boucle deja.

Si quelqu'un a une idée je suis preneur ;-)

Merci d'avance.
<-- Observe, écoute et retiens -->
moogli
le 30/04/2005 à 12:45
moogli
Salut,

utilise un sum(quantite) et un group by produit !



@+
Il en faut peu pour être heureux !!!!!
Pegasus
le 30/04/2005 à 12:51
Pegasus
Arf!! désolé j'ai oublié de préciser une chose, c'est que dans cette table il y a aussi des produits comme canape etc... mais il me faut que livres et chaises.
smiley
<-- Observe, écoute et retiens -->
Pegasus
le 03/05/2005 à 15:51
Pegasus
J'ai pitetre posé une colle ?
Personne voit...
smiley
<-- Observe, écoute et retiens -->
moogli
le 03/05/2005 à 16:38
moogli
je vois bien mais j'ai pas envie de faire ta requete

select sum(truc) as machin FROM table WHERE chose="az" ou chose="dfdf" group by bidule order by bidule;


voila a quoi peut ressembler ta requete !

@+
Il en faut peu pour être heureux !!!!!
Pegasus
le 03/05/2005 à 17:52
Pegasus
Et si je fais :

("SELECT SUM(quantite) as quantite, complet, item FROM marche WHERE pseudo='$pseudo' GROUP BY item")

ensuite j'exclu avec des 'if' les produits que je ne veux pas, est ce que c'est plus rapide pour le serveur ou pas ?
<-- Observe, écoute et retiens -->
Lefounard
le 03/05/2005 à 18:04
Lefounard
Les index dans les colonnes ! tu peux t'interresser aux index dans MYSQL, car c'est préconiser pour optimiser les SELECT, peut-etreque dans ton cas, ca changera pas ! mais bon j'ai pas tout comrpis ton probleme !
Ciao,
I am singing in the rain , I am happy again !!
LA GLOBULE
le 03/05/2005 à 18:11
LA GLOBULE
smiley

Tu n'as pas du comprendre l'interet de l'index Lefounard...
En tout cas, c'est pas du côté des index qu'il doit chercher...
Pegasus
le 03/05/2005 à 18:23
Pegasus
me dit pas que c'est du coté du majeur que je dois chercher sinon j'vais mal le prendre smiley

smiley
PS: cette blague est homologuée par les boulets de france.
<-- Observe, écoute et retiens -->
moogli
le 03/05/2005 à 19:29
moogli

ensuite j'exclu avec des 'if' les produits que je ne veux pas, est ce que c'est plus rapide pour le serveur ou pas ?


c'est surtout plus simpled le faire avec myssql et plus raisonnable (c'est absurde de ramméner 5000 tuples qui parlent de chaises alors que ta besion que des 5 qui parle de trotinettes smiley ).

tu ajoute dans ton where les clauses ou pour avoir qui t'interresse (dans mon exemple && truc=trotinette !) tous cela apres le pseudo

=> pseudo and ( truc or machin .... )


smiley
Il en faut peu pour être heureux !!!!!
Répondre
LoadingChargement en cours