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

 MySQL Discussion :

Problème de requête avec OR


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2016
    Messages : 1
    Par défaut Problème de requête avec OR
    Bonjour,

    Je suis en train de développer un système de favoris : des sites web (table 1) sont associés à des tags (table 2) via une table pivot, la table 3
    Bien entendu un lien peut être associé à plusieurs tags (d'où la table pivot).

    table1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ! ----- ! ----------------!
    ! t1_id ! t1_libelle           ! 
    ! ----- ! ---------------- !
    ! 1     ! Site 1                 ! 
    ! ----- ! ---------------- !
    ! 2     ! Site 2                 ! 
    ! ----- ! ---------------- !
    table2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ! ----- ! -----------------!
    ! t2_id ! tag                    ! 
    ! ----- ! ---------------- !
    ! 3     ! Référencement      ! 
    ! ----- ! ----------------!
    ! 4     ! Linking                ! 
    ! ----- ! ----------------! 
    ! 5     ! HTML                  ! 
    ! ----- ! ----------------!
    table3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ! ----- ! ----------------!
    ! t1_id ! t2_id                 ! 
    ! ----- ! ----------------!
    ! 1      ! 3                     ! 
    ! ---- ! ---------------- !
    ! 1     ! 4                      ! 
    ! ---- ! ---------------- ! 
    ! 2     ! 4                       ! 
    ! ---- ! ---------------- !
    ! 2     ! 5                      ! 
    ! ---- ! ---------------- !
    Ma requête, ci-dessous, affiche les sites qui ont soit le tag 'Référencement" soit le tag 'Linking' : les sites 1 et 2 sont affichés, ce n'est pas ce que veux : je voudrais afficher les sites qui ont en même temps les tags 'Référencement" et 'Linking' (donc ici uniquement le site 1) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.* 
    FROM table1 t1, table3 t3
    WHERE t1.t1_id = t3.t1_id 
    AND (t3.t2_id = 3 OR t3.t2_id = 4)
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Ca donnerait quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  t1.* 
    FROM    table1 t1
    WHERE   EXISTS
            (   SELECT  NULL
                FROM    table3 t3
                WHERE   t3.t1_id = t1.t1_id 
                    AND t3.t2_id IN (3, 4)
                HAVING  COUNT(DISTINCT t3.t2_id) = 2
            )
    Au passage, les jointures ne se notent plus avec WHERE depuis des lustres. Utilisez JOIN !
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Problème de requête avec l'agrégat
    Par bertrand_declerck dans le forum Langage SQL
    Réponses: 10
    Dernier message: 24/08/2005, 16h59
  2. Problème concaténation requête avec ORACLE
    Par kobe dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/08/2005, 11h57
  3. Réponses: 3
    Dernier message: 11/10/2004, 17h26
  4. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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