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 :

Insert d'une table a une autre


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut Insert d'une table a une autre
    Salut.

    J'ai 2 tables. Une Personnel avec nom,prénom,id et une Formation avec nom,prénom,id
    Avec le code suivant j'arrive a faire la relation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select p.id,p.nom,p.prenom  FROM Personnel AS p, Formation AS f  where p.id = f.id
    Dans ma table Formation j'ai nom, prénom et id et je voudrais essayer d'insérer que le nom et le prénom avec le numero id correspondant de id Personnel
    Mais je connais pas bien la syntaxe pour ce que je veux faire.
    J'ai essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into Formation (nom,prénom) values where id = Personnel.id
    Mais sans succès.

    Merci de votre aide

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    A la lecture de ton problème, je constate que tu es débutant en SQL et t'invite à approfondir le sujet.

    Par exemple, ta première requête sera beaucoup plus lisible sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select p.id,p.nom,p.prenom  FROM Personnel AS p INNER JOIN Formation AS f ON p.id = f.id
    Car cela permet de séparer les conditions de jointures des conditions permettant de filtrer les résultats en sortie.

    D'autre part, j'ai d'énormes doutes sur la jointure. Ici, tu fais une jointure sur ce que je suppose être la clé primaire d'une personne avec la clé primaire d'une formation. A priori, les deux non absolument rien à voir et donc si syntaxiquement l'opération est tout à fait valide et valable, sémantiquement, je me demande le sens qu'elle peut avoir.

    Pour répondre à ta dernière question, c'est tout à fait possible d'insérer des données issues d'une table dans une autre. La syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Formation (nom,prénom) SELECT nom, prenom FROM Personne
    Mais la encore, je ne vois pas très bien ce que tu veux faire, car essayer de comparer l'id d'une ligne qui n'existe pas encore (on fait un INSERT !) avec des données provenant d'une autre table n'a absolument aucun sens.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Merci de ta réponse.
    En fait ma table Personnel a déjà les nom et prénom des gens, id est un numéro d'identifiant de la personne.
    On a crée une table formation qu'on avait rempli avec les Formations du Personnel et que l'id.
    Mais nous avons rajouter depuis 2 colonnes, nom et prénom.

    Le truc c'est d'ajouter le nom et prénom dans la table Formation pour pas se taper tout a la main et du coup apprendre un truc pour plus tard.
    Pour la fonction select cela fonctionne.
    Par contre le insert ne marche pas, erreur syntax.

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par superthx Voir le message
    On a crée une table formation qu'on avait rempli avec les Formations du Personnel et que l'id.
    Mais nous avons rajouter depuis 2 colonnes, nom et prénom.
    Donc, si je comprends bien, les données sont déjà présentes dans la table Formation. Il ne reste qu'à mettre à jour les colonnes nom et prénom ? Dans ce cas, ce n'est pas un INSERT qu'il faut faire, mais un UPDATE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE F
    SET nom = P.nom,
          prenom = P.prenom
    FROM Formation AS F
    INNER JOIN Personne AS P ON F.id = P.id
    Par contre le insert ne marche pas, erreur syntax.
    Avant de dire que cela ne marche pas, il faudrait regarder un petit peu la requête, et voir que j'ai mis "prénom" avec un accent...
    Et si l'erreur de syntaxe persiste, alors il faut donner l'erreur exacte, et le SGBD utilisé. Car la syntaxe est bonne (je viens de la tester)
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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