Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conditions cumulés sur une table de jointure

    24 novembre 2011 à 18:33:21

    Bonjour je cherche de l'aide pour réaliser une requête (Mysql) qui me dépasse.
    Elle est pourtant simple sur le papier :

    J'ai une table products, tags, products_tags(table de jointure)

    Je souhaite récupérer tous les produits qui ont comme combinaison de tags "Rouge" et "Vert".
    Je parle bien de combinaison, c'est a dire qu'un product ayant les tags "rouge" et "bleu" doit être exclue.

    J'ai essayé avec un IN dans ma conditions mais ca ne peut pas marcher bien sur... voici a quoi ressemble ma requête à l'heure actuelle:

    SELECT products . * 
    FROM products
    JOIN products_tags ON ( products.id = products_tags.product_id
    AND products_tags.tag_id
    IN ( 2, 5 ) )
    


    Dans cet exemple 2 = rouge, 5 = vert

    Pouvez vous m'indiquer une piste pour la réaliser ?
    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2011 à 18:43:50

      La réponse est quasiment dans ton sujet : "cumul". Compte combien tu as de lignes par produit - 2 = rouge + vert, 1 = rouge ou vert seulement.
      • Partager sur Facebook
      • Partager sur Twitter
        24 novembre 2011 à 20:08:42

        En effet j'avais presque la solution dans le sujet, je pense m'en être sorti avec un group by
        Merci pour ton aide !
        • Partager sur Facebook
        • Partager sur Twitter

        Conditions cumulés sur une table de jointure

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown