Partage
  • Partager sur Facebook
  • Partager sur Twitter

suppression de redondance sans pertes de données

Sujet résolu
    13 mai 2019 à 13:05:55

    Bonjour, 

    je voudrais regrouper des informations pour éviter des redondances sans pour autant en perdre , je me suis peut etre pas tres bien expliqué mais voila un exemple  de table :

    'TABLE'

    id     pseudo    mail   annonces  options

    1      bla          bla      blabla        1

    1      bla          bla      blabla        2

    1      bla          bla      blabla2      5

    1      bla          bla      blabla2      7 

    le resultat que je souhaite avoir avec un select est :

    id     pseudo    mail   annonces  options

                                      blabla        1 2

       1      bla          bla  

                                      blabla2       5 7

    Merci d'avance pour vos aides :D !

    -
    Edité par M.YassineLguirati 13 mai 2019 à 13:08:15

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2019 à 13:44:36

      Bonjour,

      Pour répondre de manière brute à ta question, regarde du côté de la fonction GROUP_CONCAT() pour MySQL (ou équivalent pour autre SGBDR).

      Pour répondre plus subtilement, ton modèle de données n'est pas bon ...

      Tu as des utilisateurs, des annonces et des options. 3 entités = 3 tables.

      Un utilisateur peut créer plusieurs annonces, et un annonce appartient à un utilisateur. Relation 1,n

      Une annonce peut avoir plusieurs options, et une option peut apparaître sur plusieurs annonces. Realtion n,n

      Ton modèle devrait être :

      • utilisateur ( id_utilisateur [pk], pseudo, mail )
      • annonce ( id_annonce [pk], id_utilisateur [fk], contenu )
      • option ( id_option [pk], libelle )
      • annonce_option ( id_annonce [pk][fk], id_option [pk][fk] )
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        13 mai 2019 à 14:10:43

        Salut encore , j'ai essayé avec GROUP_CONCAT , ça marche en fait partiellement , pour mieux expliquer dans mon l'ancien exemple , 

        j'ai fais un SELECT id    ,pseudo  ,  mail ,  annonces  , GROUP_CONCAT(options) FROM TABLE GROUP BY id , qui affichera du coup:

        id     pseudo    mail   annonces  options

         1      bla          bla    blabla        1 2

        sans traiter les autres annonces 

        -
        Edité par M.YassineLguirati 13 mai 2019 à 14:39:33

        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2019 à 16:27:08

          Si tu veux regrouper par annonces, il faut le préciser :

          SELECT id, pseudo, mail, annonces, GROUP_CONCAT(options)  AS options
          FROM TABLE
          GROUP BY id, pseudo, mail, annonces

          -
          Edité par Benzouye 13 mai 2019 à 16:36:11

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

          suppression de redondance sans pertes de données

          × 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