sql et fonction MIN

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : sql et fonction MIN

par Sékiltoyai » 24 nov. 2008, 20:48

Oui, si c'était si immonde que cela pour les performances, les requêtes imbriquées n'existeraient pas…

par caroube » 24 nov. 2008, 19:30

Petite précision : non, mes deux requêtes ne sont pas gourmandes.
Elles sont plus gourmandes qu'une solution avec un seul select, mais on ne peut pas dire que cette solution est "gourmande" : il n'y a pas de jointure, il n'y a pas d'order, il n'y a pas de group ...

Il faudrait une machine bien faible et une base bien volumineuse pour que ces deux select imbriqués foutent le serveur à genoux, comme le ferait une requête "gourmande".

par Marie » 24 nov. 2008, 18:59

Ok en cas ex-aequo.

[Je ne m'étais même pas posé la question de savoir ce qui se passait en cas d'ex-aequo.... Et j'ai utilisé la solution proposée par Caroube . (je ne comprends pas limit 0,1 dans la solution de Jojolapine; pas la peine de m'expliquer, ça me passera au dessus.... et select * ben ...je fais ça aussi des fois et sans complexe.... :oops: )]

par albat » 22 nov. 2008, 17:21

:!: Une précision supplémentaire :

En cas d'ex-aequo,
la solution de caroube te retournera plusieurs résultats.
la solution de jojolapine ne te retournera qu'un seul résultat.

ok

par Marie » 22 nov. 2008, 17:02

Mille mercis !!

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par jojolapine » 22 nov. 2008, 15:45

Punition:
On n'utilise jamais le * dans un select sauf si il est au sein d'un count(), auquel cas il est plus otpimisé que tout le reste
On n'utilise jamais le * dans un select sauf si il est au sein d'un count(), auquel cas il est plus otpimisé que tout le reste
On n'utilise jamais le * dans un select sauf si il est au sein d'un count(), auquel cas il est plus otpimisé que tout le reste
On n'utilise jamais le * dans un select sauf si il est au sein d'un count(), auquel cas il est plus otpimisé que tout le reste
[...] x 1000
On n'utilise jamais le * dans un select sauf si il est au sein d'un count(), auquel cas il est plus otpimisé que tout le reste


Milles excuses... :oops:

par albat » 22 nov. 2008, 15:05

La solution de caroube est correcte, mais gourmande :
elle nécessite l'exécution de deux requêtes.

La solution de jojolapine est optimisée,
mais je vais quand même lui tirer les oreilles :
ON N'UTILISE JAMAIS DE SELECT * !!! :tir2:

par jojolapine » 22 nov. 2008, 13:27

ou sinon un truc genre

Code : Tout sélectionner

SELECT * FROM matable ORDER BY stock ASC LIMIT 0,1

par caroube » 22 nov. 2008, 12:47

tu peux faire un truc tout simple :

Code : Tout sélectionner

select ref, libelle, stock from article where stock = (select min(stock) from article)

sql et fonction MIN

par Marie » 21 nov. 2008, 13:19

Bonjour,

J'ai une table ARTICLE avec comme champs entre autres: réf, libellé et stock.
Je veux afficher le libellé du stock le plus petit. Or je n'y arrive pas.

(afficher juste le stock minimum ne me pose pas de pb mais sans le libellé correspondant...)

Merci bp pour votre aide !