IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Sujet : erreur "Subquery returns more than 1 row"


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Sujet : erreur "Subquery returns more than 1 row"
    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é :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    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.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    Avant de faire votre update il faudrai déjà identifier les doublons de noms dans votre table entreprise.

    Typiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select nomEntreprise, count(*)
    from entreprise
    group by nomentreprise
    having count(*) > 1
    Une fois que vous aurez cette liste, il va falloir traiter ces doublons dans vos 2 tables.

    Ensuite vous pourrez effectuer l'update que vous proposez.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci de votre aide mais dans la table entreprise, il n'y a pas de doublons car il s'agit juste de la liste des entreprises, c'est dans la tables cvpatient où plusieurs patients peuvent appartenir une entreprise donc les doublons se trouvent dans cette table.

    Après suivant votre question, je vois pas du tout comment traiter les doublons, enfin je ne vois ce que vous voulez dire dans votre réponse.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Beh moi je suis persuadé que vous avez des doublons de nom dans votre table entreprise, avez-vous passé la requete que je vous ai donné ?

    les doublons dans cvpatient n'ont pas d'importance vu que le traitement de l'update se fera ligne par ligne, donc les doublons sont bien dans la sous-requete.... donc dans la table entreprise.

    (ou alors MySql est vraiment très con pour le coup)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    ha oui effectivement elle comporte des doublons, désolé, je ne l'avais pas remarqué, du coup en changeant tout cela , c'est beaucoup mieux =D

    Merci beaucoup de votre aide ;p

Discussions similaires

  1. Erreur Subquery returns more than 1 row
    Par incent_bzh dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/01/2014, 12h06
  2. Réponses: 2
    Dernier message: 11/08/2011, 11h38
  3. Erreur ORA-01427 single-row subquery returns more than one row
    Par SmileAndFly dans le forum Langage SQL
    Réponses: 10
    Dernier message: 29/08/2008, 16h12
  4. ORA-01427: single-row subquery returns more than one row
    Par hadid dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/10/2006, 16h35
  5. Subquery returns more than 1 row
    Par Mathelec dans le forum Requêtes
    Réponses: 12
    Dernier message: 03/08/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo