Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide pour requête sql

    10 mai 2024 à 10:51:39

    Bonjour,

    je viens demander l'aide de la communauté car je galère sur une requête sql (pour ensuite la passer en dql pour symfony, mais pour le moment même en sql je n'y arrive pas).

    Je vous présente rapidement ma bdd : j'ai trois tables : article, catégorie et sous-catégorie.
    Un article peut avoir plusieurs catégories et une catégorie peut appartenir à plusieurs articles.
    Une catégorie ne peut avoir qu'une seule sous-catégorie mais une sous-catégorie peut appartenir à plusieurs catégorie.

    Je souhaite récupérer toutes les articles qui ont en même temps (and) les sous-catégories que je donne dans ma condition (where).

    Voilà ce que j'ai fait pour le moment avec comme condition les sous-catégorie ayant pour id 2 et 4 :

    select a.id, count(a.id) from public.article a
    join article_categorie ac on ac.article_id = a.id
    join categorie c on c.id = ac.categorie_id  
    join sous_categorie sc on sc.id = c.sous_categorie_id
    where sc.id in (2,4)
    group by a.id
    having count(a.id) > 1 



    Si quelqu'un pourrait m'aider ce serait sympa,
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2024 à 3:06:28

      Un where in est un ou déguisé donc, si l'id 2 est True, la condition est vraie et on n'ira pas vérifier l'id 4.

      Tente avec un where sc = 2 AND sc = 4.

      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2024 à 21:34:51

        Salut

        La solution mentionnée ci-dessus ne fonctionnera pas, simplement parce que sc ne peut valoir à la fois 2 et 4 ou, dit autrement que 2 ne vaut pas 4.

        A mon sens, tu peux

        1. te passer de la troisième jointure
        2. changer le WHERE en AND
        3. remplacer sc.id IN … par c.sous_categorie_id IN …
        • Partager sur Facebook
        • Partager sur Twitter

        Aide pour requête sql

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