Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de requete avec min()

1 réponse
Avatar
phil
Bonjour,

je deviens ch=E8vre avec une requ=EAte.

J'ai 1 table avec 3 champs :
prd_att_id (qui est la cl=E9)
prd_id
prix_ttc

je cherche =E0 r=E9cup=E9rer les prd_id uniques (jusque l=E0 =E7a va) mais
surtout, afficher par ordre de prix minimum. J'ai donc des prd_id qui
peuvent =EAtre de m=EAme valeur mais avec des prix_tcc diff=E9rents.
exemple :
prd_id prd_att_id prix_ttc
11 7 159.00
12 8 90.00
13 9 240.00
14 10 155.00
22 11 195.00
22 12 390.00
24 15 65.00

avec
SELECT min( prix_ttc ) , prd_id
FROM produits_attributs
WHERE prd_id
IN (
SELECT DISTINCT prd_id
FROM produits_attributs
)
GROUP BY prd_id
ORDER BY prix_ttc

exemple :
prix_ttc prd_id
65.00 11
65.00 25
72.00 14
72.00 13
82.00 21
90.00 8
110.00 17
95.00 18
155.00 10
159.00 7
240.00 9
340.00 16
195.00 22

j'ai les bonnes valeurs mais pas dans le bon ordre ....pourquoi .. je
pige pas . En fait le prd_id 22 =E0 2 valeurs, il renvoit la valeur mini
mais la classe donc comme s'il prenait en compte la plus grosse valeur

merci de vos lumi=E8res
phil

1 réponse

Avatar
phil
Bon, je pige pas .. tant pis, ma requete de début fonctionne avec la
bidouille donc je vais faire avec même si cela restera un mystère.
Merci beaucoup pour le temps passé et les divers tests effectués.

Pour l'apéro, ça se passe sur Poitiers :D
phil

Antoun a écrit :

>>phil wrote:
>>
>>>VERSION(): 4.1.9-max
>>
>>donc tu as passé le cap de la 4.1
>>
>>
>>>@@sql_mode ne renvoit pas de valeur (vide)
>>
>>donc rien qui interdise l'optimisation du regroupement de MySQL...

je me suis installé ta version, et ta requête


SELECT min( prix_ttc ) , prd_id
FROM produits_attributs
GROUP BY prd_id
ORDER BY min( prix_ttc )

fonctionne sans pb, en SQL mode par défaut ou vide.