Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requête avec IN qui contiendrait tt les valeurs

Sujet résolu
    14 janvier 2022 à 19:58:50

    Bonjour,

    Je travaille sur une base avec des livres qui ont des genres (plusieurs genres pour un livre). J'ai une liste de genres, et j'aimerais ressortir tous les livres qui sont liés à tous les genres sélectionnés. J'arrive avec un "... IN liste" à ressortir les livres qui sont liés à un des genres sélectionnés, mais je n'ai aucune idée de comment faire sinon... J'ai cherché un peu partout sur internet, sans succès... Est-ce que quelqu'un pourrait m'aider ?

    Voici ma requête qui ressort tous les livres liés à un des genres sélectionnés :

    SELECT uuid, livre.nom, couverture
    FROM livre
    INNER JOIN genre_livre ON livre.id = genre_livre.livre_id
    WHERE genre_livre.genre_id IN (2,3)

    Merci

    • Partager sur Facebook
    • Partager sur Twitter

    Life is about more than just survival

      18 janvier 2022 à 15:20:13

      Bonjour,

      Une solution est de compter les occurrences et de ne conserver que celle qui ont le même nombre que celui des genres cherchés :

      SELECT
      	L.uuid,
      	L.nom,
      	L.couverture
      FROM
      	livre L
      		INNER JOIN genre_livre GL
      			ON L.id = GL.livre_id
      WHERE GL.genre_id IN ( 2, 3, 4 )
      GROUP BY
      	L.uuid,
      	L.nom,
      	L.couverture
      HAVING COUNT(*) = 3 -- faire varier cela en fonction du nombre de valeur dans le IN
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      Requête avec IN qui contiendrait tt les valeurs

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown