Votre question

Help SQL

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
15 Janvier 2010 20:52:34

Bonjour a tous, étant actuellement en train d'apprendre le SQL, j'ai un peu de mal a comprendre l'opérateur IN et NOT IN, j'ai du mal a voir a quoi ils servent.
Voila ! merci a tous d'avance en esperant que vous allez m'aider, a bientot !

Autres pages sur : help sql

a c 145 L Programmation
15 Janvier 2010 22:50:15

Il permettent de rechercher (ou d'eclure) ce qui est compris dans une liste.
  1. SELECT * FROM user WHERE id IN (1, 7, 3, 18, 321, 43)

te ressortira tous 6 utilisateurs dont les ids sont ceux mentionnés.
A contrario :
  1. SELECT * FROM user WHERE id NOT IN (1, 7, 3, 18, 321, 43)

te ressortira tous les utilisateurs sauf les 6 dont les ids sont mentionnés.
m
0
l
16 Janvier 2010 12:49:41

merci pour ton explication
m
0
l
Contenus similaires
23 Janvier 2010 10:56:27

j'ai une autre question je suis en train d'apprendre a utiliser access et lorsque je met sa : SELECT Réfclt, VilleClt
FROM CLIENT
WHERE VilleClt LIKE 'A%';

rien ne s'affiche, j'ai regardé la table client, le champ "ville" et il y a bien des ville qui commence par la lettre A mais rien ne s'affiche lors de l'execution quelqu'un peut m'expliquer pourquoi ? merci
m
0
l
23 Janvier 2010 11:16:17

Si le champ s'appel ville, il faut mettre Ville et pas VilleClt dans ta clause WHERE.
m
0
l
23 Janvier 2010 11:16:46

Et je te conseil de mettre or die (mysql_error()) apres t'es requete pour afficher les erreur ;o)
m
0
l
23 Janvier 2010 17:42:56

ba enfaite la ville c'est bien VilleClt et non ville, ma requete et donc correct sinon, ou dois-je mettre ce "or die mysql_error" ?
m
0
l
a c 145 L Programmation
24 Janvier 2010 21:25:11

okinou n'a pas lu que tu étais sous Access, donc pas de or die().
Sous Access, je pense qu'il faut utiliser * plutôt que % dans un like.
m
0
l
24 Janvier 2010 21:43:16

okinou, il ne faut _jamais_ mettre de or die() dans le code. Privilégier trigger_error($msg, E_USER_ERROR)

Sinon tu controles plus les messages d'erreurs que tu affiches.
m
0
l
30 Janvier 2010 14:54:12

salut a tous, je fais encore appelle a vous car je recontre un probleme avec une autre clause, qui est ..... GROUP BY, ayant fait des recherches sur google, malgré les explications (parfois pas top top) et des illustrations que je n'ai pas accroché, je ne comprend toujours pas ce qu'est cette clause. J'ai du mal a voir a quoi peut servir cette clause et comment s'en servir.

Voila, besoin de votre aide, si vous pouviez me donner des examples avec des explications se serait super.

En attendant je vous remercie d'avance pour l'aide que vous m'apporterai.

.............MERCI
m
0
l
a c 145 L Programmation
31 Janvier 2010 18:50:48

La clause GROUP BY sert à regrouper les données sur des critêres communs, par exemple lorsque tu veux compter des éléments, ou trouver le minimum ou le maximum (ce sont les 3 cas où le GROUP BY est obligatoire).

Si par exemple tu as une table de personnes, définies par des id (uniques), nom, prénom et poste et que tu veux compter le nombre de membres dans chaque poste, tu feras:
  1. SELECT COUNT( DISTINCT *) FROM personnes GROUP BY poste

Sans ce GROUP BY, tu aurais eu le nombre de lignes distinctes dans ta table, alors que là, le moteur SQL rassemble les lignes ayant la même valeur pour "poste" et te donne le compte de chaque groupe.
m
0
l
31 Janvier 2010 21:31:08

d'accord, donc je prend un autre exemple pour voir si j'ai bien compris.
SI je fais : SELECT COUNT( DISTINCT *) FROM personnes GROUP BY prenom
je compte le nombre de personnes qui ont le même prenom.
C'est bien sa ???
m
0
l
a c 145 L Programmation
1 Février 2010 09:17:14

Tout à fait.
m
0
l
1 Février 2010 16:19:15

Le DISTINCT est inutile ici. Le GROUP BY le fait.
m
0
l
a c 145 L Programmation
1 Février 2010 16:50:30

C'est vrai, j'ai la mauvaise habitude de le mettre quasiment chaque fois.
m
0
l
1 Février 2010 20:26:29

Et pourtant c'est une horreur le distinct pour les perfs :)  Car il faut absolument avoir récupérer l'ensemble des résultats en mémoire avant de le dédoublonner et l'envoyer. Idem pour le GROUP BY, l'ORDER BY et UNION (préférer UNION ALL) d'ailleurs ;) 
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS