Différence HAVING/where

Fermé
saditerre Messages postés 75 Date d'inscription samedi 16 janvier 2010 Statut Membre Dernière intervention 11 octobre 2016 - 31 mai 2014 à 17:36
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 - 31 mai 2014 à 17:42
Bonjour, je ne comprends pas clairement le différence entre la requête having et la requête where en SQL... Quelqu'un aurait-il une idée?
Thanks

2 réponses

jee pee Messages postés 39643 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 237
Modifié par jee pee le 31/05/2014 à 17:41
Salut,

Le where est une condition simple.

Le having est une condition qui s'applique sur un regroupement (group by)

select montant from table where montant > 10

select departement, sum(montant) from table 
group by departement 
havinq sum(montant) > 1000


cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
31 mai 2014 à 17:42
Bonjour,

Sauf erreur de ma part, HAVING s'utilise principalement avec des fonctions d'agrégats comme GROUP BY car dans le cas de WHERE, ton moteur de BDD ne retournera que les éléments remplissant les conditions de ta clause WHERE alors qu'avec HAVING, tous les éléments seront retournés et le tri se fera ensuite.
Cela permet donc de soulager la charge de ton serveur en limitant le nombre d'éléments retournés par ta requête.
0