Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2011, 17h00   #1
Invité de passage
 
Inscription : octobre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 4
Points : 1
Points : 1
Par défaut Requete avec plusieurs And

Bonjour à tous,

Je bloque sur une requete.

J'ai une table qui contient 3 champs

Iduser | Question | Reponse
87687 QU1 homme
38930 QU1 femme
87687 QU2 18-25
38930 QU2 18-25

Je dois requeter sur la table pour afficher tous les hommes de 18-25 ans.

Comment puis-je la construire?

J'ai essaye avec IN dans la clause WHERE mais le probleme c'est qu'il est possible qu'il y est d'autres questions a intégrer dans le WHERE, et la le tps d'execution est mortel...

Merci d'avance.

Dave
dvcom69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 17h28   #2
Membre éprouvé
 
Homme
Ingénieur développement logiciels
Inscription : avril 2009
Messages : 501
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Service public

Informations forums :
Inscription : avril 2009
Messages : 501
Points : 490
Points : 490
Code :
SELECT * FROM TABLE WHERE Reponse = '12-25';
Ca ne marche pas ?
oneagaindoguys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 17h37   #3
Invité de passage
 
Inscription : octobre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 4
Points : 1
Points : 1
Citation:
Envoyé par oneagaindoguys Voir le message
Code :
SELECT * FROM TABLE WHERE Reponse = '12-25';
Ca ne marche pas ?
Nein!

Il faudrait dans le meilleur des cas (mais ce n'est pas possible) faire:
Code :
SELECT Iduser FROM matable WHERE (question = 'QU1' AND reponse = 'Homme') AND (question = 'QU2' AND reponse = '18-25')
Mais ca c'était dans mon reve d'hier soir
dvcom69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 18h11   #4
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Tu peux joindre ta table avec elle même :
Code :
1
2
3
4
5
6
7
SELECT t1.Iduser 
  FROM matable t1
  JOIN matable t2 ON t2.Iduser = t1.Iduser
 WHERE t1.question = 'QU1' 
   AND t1.reponse  = 'Homme' 
   AND t2.question = 'QU2' 
   AND t2.reponse  = '18-25'
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 18h47   #5
Invité de passage
 
Inscription : octobre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 4
Points : 1
Points : 1
Merci l'ami!

Petite question: si j'ai un troisieme champs, ca marche comment?

Merci d'avance!
dvcom69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 18h57   #6
Invité de passage
 
Inscription : octobre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 4
Points : 1
Points : 1
C'est good ca marche!

Merci skuatamad!
dvcom69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 21h45   #7
Membre éprouvé
 
Homme
Ingénieur développement logiciels
Inscription : avril 2009
Messages : 501
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Service public

Informations forums :
Inscription : avril 2009
Messages : 501
Points : 490
Points : 490
Je n'avais pas bien compris le sens de la question. Désolé
oneagaindoguys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h16.


 
 
 
 
Partenaires

Hébergement Web