[sql] lier 1 champs d'une autre table

Bonjour,

Voilà, j'aimerais savoir comment faire pour modifier un champs avec les données qui proviennent d'une autre table.

J'ai 2 tables : livres (id, nomlivre, nomauteur) et auteur (id, auteur)

Je voudrais lier chaque livre avec l'id de l'auteur respectif. Pour le moment je n'ai que le nom de l'auteur dans la table livre.

J'ai donc ajouté le champs "idauteur" dans la table livre puis j'ai testé plusieurs requêtes pour mettre l'id de l'auteur mais aucune ne fonctionne ^^

Avez-vous une idée ?

merci

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Salut ,

    Il te faut une clé d'unicité pour cela , dans ton cas tu peux peut être utiliser le nom de l'auteur , ou créer un champ code_auteur.

    ensuite ta requête devrait ressembler à ça :

    UPDATE
    1. UPDATE
      Livres
      SET
      Livres.idauteur = auteur.id
      FROM
      livres
      INNER JOIN
      auteur
      ON
      livres.nomauteur = auteur.auteur -- ici tu as ta clé d'unicité entre les deux tables.