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 :

IN avec AND sur toutes les valeurs


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 16
    Points : 12
    Points
    12
    Par défaut IN avec AND sur toutes les valeurs
    Bonjour à tous,

    Je vous expose d'abord ma situation :

    Table ANNONCES [PK=ID_ANNONCE]
    Table CRITERES [PK=ID_CRITERE, LIBELLE]
    Table CRITERES_ANNONCES [PK=ID_CRITERE_ANNONCE, FK=ID_ANNONCE, FK=ID_CRITERE]

    Mon problème : Quelle requête dois-je mettre en place pour récupérer (dans un moteur de recherche, par exemple) les annonces ayant certains critères ?

    Voici ma requête de départ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT A.id_annonce
    FROM annonces A
    INNER JOIN criteres_annonces CA ON A.id_annonce = CA.id_annonce AND CA.id_critere IN (1,2,3)
    Malheureusement, le IN teste si l'une des valeurs est présente. Dans mon cas, toutes les valeurs doivent être présentes.

    Merci pour votre aide.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Cas classique !
    Il faut restreindre les lignes qui répondent aux critères et compter ces critères pour s'assurer qu'ils sont tous présents.

    Si vous voulez qu'il y ait au moins ces 3 critères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT A.id_annonce
    FROM annonces A
    INNER JOIN criteres_annonces CA ON A.id_annonce = CA.id_annonce 
    WHERE CA.id_critere IN (1,2,3)
    GROUP BY A.id_annonce
    HAVING COUNT(*) >= 3
    Si vous voulez qu'il n'y ait que ces 3 critères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT A.id_annonce
    FROM annonces A
    INNER JOIN criteres_annonces CA ON A.id_annonce = CA.id_annonce 
    WHERE CA.id_critere IN (1,2,3)
    GROUP BY A.id_annonce
    HAVING COUNT(*) = 3
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Un grand merci

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

Discussions similaires

  1. Problème avec TOP 10 sur Toutes les valeurs
    Par Hadi2015 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/03/2015, 23h33
  2. condition sur toutes les valeurs d'un tableau
    Par bl4cksky dans le forum Débuter
    Réponses: 6
    Dernier message: 24/06/2013, 11h44
  3. Réponses: 1
    Dernier message: 19/10/2011, 14h57
  4. [AC-2003] dlookup sur toutes les valeurs du jour
    Par chuspyto dans le forum IHM
    Réponses: 1
    Dernier message: 25/03/2010, 14h59
  5. Condition sur toutes les valeurs d'un vecteur
    Par Newenda dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/06/2009, 15h50

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