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.
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.
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.
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
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.
Tutoriel complet MySQL !
Tutoriel complet MySQL !