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 :

Chercher si un produit a labelA et labelB


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Par défaut Chercher si un produit a labelA et labelB
    Bonjour,

    j'ai un table produit avec son ID et son nom.
    j'ai un table label avec un ID et un nom

    et j'ai une table de reference prodlabel qui contient un PRD_ID et LBL_ID comme foreign key.

    J'essaye de faire une requête MySQL pour pouvoir chercher les produits qui ont labelA et label2 mais je n'y arrive pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    SELECT product.name FROM product 
    WHERE product.PRD_ID IN 
    (
    ELECT _prodlabel.PRD_ID
    FROM _prodlabel
    WHERE _prodlabel.LBL_ID
    IN (
    SELECT label.LBL_ID
    FROM label
    WHERE name LIKE  '%labelB%'
    )
    INTERSECT //Ca ne marche pas avec MySQL
     
    SELECT _prodlabel.PRD_ID
    FROM _prodlabel
    WHERE _prodlabel.LBL_ID
    IN (
     
    SELECT label.LBL_ID
    FROM label
    WHERE name LIKE  '%labelA%'
    )
    Si qqun peux m'aider ca serait vraiment cool

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Ca devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT product.name, COUNT(*)
    FROM product, _prodlabel, label
    WHERE product.PRD_ID = _prodlabel.PRD_ID
    AND _prodlabel.LBL_ID = label.LBL_ID
    AND label.name in ('labelA','labelB')
    GROUP BY product.name
    HAVING COUNT(*) > 1

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Et avec la syntaxe normalisée depuis 1992 pour les jointures, c'est encore mieux !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT product.name
    FROM product
    INNER JOIN _prodlabel ON product.PRD_ID = _prodlabel.PRD_ID
        INNER JOIN label ON  _prodlabel.LBL_ID = label.LBL_ID
    WHERE label.name IN ('labelA','labelB')
    GROUP BY product.name
    HAVING COUNT(*) > 1
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

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

Discussions similaires

  1. erreur :"une exception s'est produite"
    Par leborg dans le forum ASP
    Réponses: 11
    Dernier message: 02/03/2004, 15h09
  2. [VB6]Chercher l'adresse IP
    Par Shea13 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2004, 17h07
  3. [info]Licence des produits Java
    Par XavierZERO dans le forum Général Java
    Réponses: 12
    Dernier message: 16/01/2004, 16h27
  4. Faire le produit de 2 colonnes
    Par toure32 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/11/2003, 20h47
  5. [Dev-Pascal] Ne produit pas d'exe
    Par portix dans le forum Autres IDE
    Réponses: 8
    Dernier message: 02/07/2003, 15h14

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