Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mise à jour d'une table à partir d'une autre

Sujet résolu
    12 décembre 2011 à 14:54:40

    Bonjour,

    J'ai une table "livres" avec notamment 2 champs : id_livre; commentaires. Et une autre table appelée "commentaires" avec 2 champs : id_livre; commentaires_prov (cette table est en fait une table provisoire permettant de mettre à jour la table "livres")
    Actuellement le champ "commentaires" de la table "livres" ne comporte aucun enregistrement alors que celui de la table "commentaires" (commentaires_prov) en comporte plusieurs centaines. Je souhaiterais copier tous les commentaires de la table "commentaires" vers la table "livres" en prenant pour critère l'identifiant primaire commun des 2 tables, à savoir "id_livre".
    J'avais commencé la requête suivante :
    UPDATE livres SET commentaires= (select commentaires_prov from commentaires) WHERE ...
    

    mais je ne sais pas comment traduire le critère commun "id_livre". Pouvez-vous m'aider ? Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      12 décembre 2011 à 14:56:46

      Heu ???

      1/ Si tu veux insérer les lignes d'une table dans une autre, c'est une insertion, pas un updaet

      2/ Pourquoi deux tables et pas une ?
      • Partager sur Facebook
      • Partager sur Twitter
        12 décembre 2011 à 15:07:01

        En fait le champ "commentaires" de ma table "livres" contient des enregistrements avec la valeur "null" d'où le update. Mon 1er message était erroné sur ce point.

        id_livre; commentaires
        1; null
        2; null
        etc.

        La table "commentaires " est une table provisoire créée uniquement pour faire la mise à jour de la table "livres". Je la supprimerai ensuite.

        id_livre; commentaires_prov
        1; commentaire_A
        2; commentaire_B
        etc

        Après la mise à jour, le contenu de la table "livres" sera :
        id_livre; commentaires
        1; commentaire_A
        2; commentaire_B
        etc
        J'espère avoir été plus clair sur ce que je souhaite obtenir. Merci encore.
        • Partager sur Facebook
        • Partager sur Twitter
          12 décembre 2011 à 15:10:30

          Salut
          Il suffirai pas de supprimer la table livre, de renommer commentaires_prov en commentaires et de renommer la table commentaires en livres ?
          • Partager sur Facebook
          • Partager sur Twitter
            12 décembre 2011 à 15:15:08

            Non Angelo, car la table "livres" comporte bien d'autres champs que les champs "id_livre" et "commentaires".Merci quand même pour la proposition.
            • Partager sur Facebook
            • Partager sur Twitter
              13 décembre 2011 à 14:07:55

              Merci Taguan. Effectivement en faisant cette requête, cela marche :
              UPDATE livre
              INNER JOIN commentaires
                  ON livre.id_livre = commentaires.id_livre                                   
              SET  livre.commentaires  = commentaires.commentaires_prov
              
              • Partager sur Facebook
              • Partager sur Twitter

              Mise à jour d'une table à partir d'une autre

              × 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