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

Langage SQL Discussion :

Auto jointure (sur une même table)


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut Auto jointure (sur une même table)
    Bonjour,
    J'ai une table Clients contenant 3 colonnes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ClientNumber          ClientName       ParentClientNumber
    11111111               Name1            22222222
    22222222               Name2            44444444
    33333333               Name3            11111111   
    ....
    je voudrais ajouter une colonne (ParentClientName) comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ClientNumber          ClientName       ParentClientNumber      ParentClientName
    11111111               Name1            22222222                   Name2
    22222222               Name2            44444444                   Name4
    33333333               Name3            11111111                   Name1
    ....
    Je pense que c'est une jointure sur la même table CLIENTS qu'il me faut mais je me perds un peu dans le code sql depuis tout à l'heure

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 112
    Par défaut
    Essaye ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update clients set ParentClientName = (select c.ClientName from clients c where c.ClientNumber = ParentClientNumber);

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

    Le statement select ne retourne pas le même nombre d'enregistrements.. donc il y a un probléme quelque part..

    ne faut-il pas une jointure??

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    En plus ce select que tu fais retourne simplement les enregistrements où clientnumber est le même que le ParentClientNumber

  5. #5
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Quel est l'ordre logique et la correspondance entre tes colonnes existantes et futur ?

    ClientNumber ClientName ParentClientNumber ParentClientName
    11111111 Name1 22222222 Name2
    22222222 Name2 44444444 Name4
    33333333 Name3 11111111 Name1
    ....
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    ParentClientName n'existe pas
    Je voudrais la créer..

    Mais l'important n'est pas la clause update.. c'est la clause select qui m'ennuie..

    Comment récupérer l'information : Nom du client Parent!


    Merci

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 112
    Par défaut
    Cette requete marche mais il ne faut pas que tu ais plusieurs clients avec le meme clientnumber.

    Sinon effectivement, il ne sait pas lequel prendre

  8. #8
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Autant pour moi, pas bien regardé

    Peut-être une reflexion attive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE clients SET ParentClientName = (SELECT c.ClientName FROM clients c join clients c1 WHERE c1.ClientNumber = c.ParentClientNumber);
    A voir
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



Discussions similaires

  1. Jointure sur une même table
    Par JmL40 dans le forum Développement
    Réponses: 6
    Dernier message: 14/12/2010, 16h26
  2. Jointure sur une même table
    Par franquis dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/04/2010, 12h49
  3. Auto-jointure sur une même table
    Par West01 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/10/2008, 16h46
  4. [1.x] Jointure sur une même table
    Par tyx dans le forum Symfony
    Réponses: 1
    Dernier message: 04/08/2008, 12h19
  5. jointure sur une même table
    Par guillaumeVb6 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/09/2004, 16h08

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