Erreur "Subquery returns more than 1 row"

dicyz Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
Pitu Messages postés 1441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, je suis en train de remanier une base de donnée et je veux remplacer les noms d'entreprises par leur id.

Il y a deux tables : une cvpatient qui comprend un nom d'entreprise (en autre)

et entreprise qui comprend le nom de l'entreprise avec son id

Moi je voudrai que dans cvpatient, j'ai une colonne idEntreprise qui comprend l'id de l'entreprise et qui serai trouvé grace à la comparaison des noms d'entreprises de chaque tables.
J'ai donc crée une colonne idEntreprise où il n'y a aucune valeur et voici le code SQL réalisé :

Update cvpatient cv SET cv.idEntreprise=(SELECT en.idEntreprise FROM entreprise en
WHERE en.nomEntreprise= cv.Entreprise)



Le problème étant que je reçois le message d'erreur suivant : "#1242 - Subquery returns more than 1 row"
Donc je ne sais pas comment faire pour résoudre ce problème.
Je pense que cela vient que l'update ne peut faire qu'une seule ligne mais y'a t'il une solution?

Merci d'avance pour votre aide.

1 réponse

Pitu Messages postés 1441 Date d'inscription   Statut Contributeur Dernière intervention   125
 
Bonjour,

Effectivement, c'est à peu près cela.
Tu peux faire un "update" sur plusieurs lignes à la fois, mais à partir de la même valeur.
Là, ta requête est telle que tu voudrais qu'elle écrive n valeurs différentes sur n lignes.

A ta place, je ferais un déchargement de ta table dans un excel pour ensuite fabriquer les requêtes propres à chacune des lignes à mettre à jour.

0