Erreur "Subquery returns more than 1 row"

Fermé
dicyz Messages postés 82 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 23 octobre 2012 - 4 avril 2012 à 11:58
Pitu Messages postés 1441 Date d'inscription jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 - 4 avril 2012 à 15:32
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 jeudi 3 octobre 2002 Statut Contributeur Dernière intervention 5 janvier 2013 125
4 avril 2012 à 15:32
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