IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Trouver une valeur commune à plusieurs enregistrements


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Trouver une valeur commune à plusieurs enregistrements
    Bonjour,

    Je bute sur une requête qui paraissait pourtant simple :

    J'ai ma table SERIES qui contient deux colonnes : serie et NO_QCM. Chaque NO_QCM est associé à un ou plusieurs numéros de série. Je voudrais trouver la série qui correspond à un paquet de NO_QCM, à savoir trouver la série qui est commune à un certain nombre de QCM. Le but est qu'en entrant les numéros de QCM d'un sujet, le biniou me dise si le sujet existe déjà ou pas dans la base de données.

    Exemple :

    serie | NO_QCM
    S1 | 1234
    S1 | 4567
    S1 | 8910
    S2 | 1234
    S2 | 4321
    S2 | 5589

    Moi, innocemment, j'ai commencé par essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT serie FROM series where NO_QCM = '1234' AND NO_QCM = '4567' AND NO_QCM = '8910'
    en espérant que ça me sorte S1. Mais non ! Ca ne renvoie aucune ligne.

    J'ai essayé tout un tas de variation : parenthèses, OR à la place de AND, IN ('1234', etc.) mais c'est l'échec complet.

    J'en appelle donc aux compétences présentes sur ce forum

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    oui en effet, cela ne peut pas fonctionner comme cela car tu n'as pas un tuple qui correspond à l'ensemble de tes critères

    tu peux écrire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT serie FROM series 
    WHERE NO_QCM in ('1234', '4567', '8910')
    group by serie
    having count(*)=3

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Cybher Voir le message
    oui en effet, cela ne peut pas fonctionner comme cela car tu n'as pas un tuple qui correspond à l'ensemble de tes critères
    Hum, j'avoue que je ne comprends pas pourquoi ma première requête ne marche pas, mais ce n'est pas bien grave, la tienne fonctionne

    Merci beaucoup !

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par chezgligli Voir le message
    Hum, j'avoue que je ne comprends pas pourquoi ma première requête ne marche pas,
    Saluton,
    Réfléchis 2 secondes, NO_QCM ne peut pas être, à la fois, au sein de la même ligne de la table, égal à '1234' ET égal à '4567' ET égal à '8910'.
    La syntaxe proposée par Cybher équivaut, en plus synthétique, à remplacer les AND de ta requête par des OR.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Maljuna Kris Voir le message
    La syntaxe proposée par Cybher équivaut, en plus synthétique, à remplacer les AND de ta requête par des OR.
    Pas tout à fait, car si je remplace les AND par des OR, ça me sort toutes les séries qui correspondent à au moins un NO_QCM donné. Or, ce que je veux, et que j'ai grâce à Cybher, c'est la série qui correspond à tous les NO_QCM donnés.

    Mais ce n'est pas bien grave, si je ne pige pas, ça marche

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Ça c'est lié au GROUP BY et son filtre HAVING, pas à la clause WHERE.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2014, 12h42
  2. [VBA-E]Methode pour trouver une valeur qui apparait plusieur fois
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2006, 13h11
  3. recopier une valeur dans plusieurs enregistrements
    Par moicats dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 17h02
  4. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  5. Réponses: 5
    Dernier message: 20/09/2005, 22h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo