Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requete complexe

    30 novembre 2023 à 12:55:30

    Bonjour, pardonnez moi mais j'ai du mal à expliquer mon problème en une seule ligne.

    j'ai dans ma base de données des articles qui ont une photo et des articles sans photos.

    Malheureusement je n'arrive pas à créer une requête qui me remonte tout le panier, ne remonte uniquement les articles avec photo.

    Pour plus de clarté voici mon code.

    SELECT DISTINCT
                                                dc.id_detail_commande,
                                                dc.idx_article,
                                                da.designation,
                                                ac.prix,
                                                ph.photo
                                            FROM detail_commande dc
                                            INNER JOIN article a ON a.id_article = dc.idx_article
                                            INNER JOIN activite ac ON ac.id_activite = a.is_activite
                                            INNER JOIN des_activite da ON da.id_des_activite = ac.des
                                            INNER JOIN photo_article ph ON ph.idx_article = a.id_article
                                            WHERE dc.idx_utilisateur = 1 AND da.designation IS NOT NULL AND ph.deffaut = 1
                                        UNION 
                                            SELECT DISTINCT
                                                dc.id_detail_commande, 
                                                dc.idx_article,
                                                ar.titre,
                                                ar.prix_unitaire,
                                                ph.photo
                                            FROM detail_commande dc
                                            INNER JOIN  article ar ON ar.id_article = dc.idx_article
    										INNER JOIN photo_article ph ON ph.idx_article = ar.id_article
                                            WHERE dc.idx_utilisateur = 1 AND ar.titre IS NOT NULL AND ph.deffaut = 1
                                        UNION 
                                            SELECT DISTINCT
                                                dc.id_detail_commande,
                                                dc.idx_article,
                                                e.designation,
                                                a.prix_unitaire,
                                                me.path
                                            FROM detail_commande dc
                                            INNER JOIN article a ON a.id_article = dc.idx_article
                                            INNER JOIN evenements e ON e.id_evenements =a.is_evenement
                                            INNER JOIN media_evenement me ON me.idx_evenements = e.id_evenements
                                            WHERE dc.idx_utilisateur = 1 AND e.designation IS NOT NULL AND me.une = 1

    Merci d'avance pôur vos retours.

    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2023 à 0:20:36

      Salut,

      Tu devrais vérifier les différentes possibilités de JOIN. J'en connais 4 : Inner Join, Left Join, Right Join et Full Outer Join.

      Tu as décidé de mettre une colonne étrangère dans la table Photo pour y insérer l'article. Ok. Des photos peuvent ne pas être associées à un article donc cette colonne est NULLABLE.

      Mettons à gauche la table photo et à droite la table article :

      avec inner join, il faut que Photo.article ait la même valeur que Article.id_article

      concrètement, imagine ces quelques lignes

      Photo :

      {Photo 1, Article 1}

      {Photo 2, Article NULL}

      Article :

      {Article 1}

      {Article 2}

      {Article 3}

      donc avec inner join tu obtiendras 

      {Photo 1, Article 1} uniquement.

      avec Left join tu obtiendras le contenu de Photo

      avec Full outer join tu obtiendras les contenus de Photo et d'Article

      et enfin avec Right join tu obtiendras ce que tu souhaites soit 

      {Photo 1, Article 1} et le contenu d'Article et donc les articles qui n'ont pas de photos.

      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2023 à 20:30:02

        Merci ton commentaire m'a braucoup aider
        • Partager sur Facebook
        • Partager sur Twitter

        Requete complexe

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