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 :

Requête INSERT sur plusieurs tables


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Points : 63
    Points
    63
    Par défaut Requête INSERT sur plusieurs tables
    Bonjour à tous,

    Je dispose d'une première table temporaire qui contient tous mes enregistrements, nous l'appelerons tblTempo. Cette table contient les champs :

    tblTempo
    - nom
    - prenom
    - dateNaiss
    - numeroTel


    Je veux affecter les enregistrements de cette table temporaire dans deux tables définitives : tblIdentite et tblPhone

    tblIdentite
    - PK_ID
    - nom
    - prenom
    - dateNaiss

    - FK_numeroID

    tblPhone
    - PK_numeroID
    - numeroTel

    Quelqu'un peut-il me dire comment faire ? J'espère que mon explication sera claire ! lol

    Merci beaucoup de votre aide

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    1) Insérer dans tblIdentite

    2) Insérer dans tblPhone en faisant une jointure

    Euh... dis-moi... PK_numeroID, c'est l'identifiant du téléphone ?
    Tu sais comment que tel numéro de téléphone appartient à telle personne ?

    Ta table devrait plutôt être :
    (PK_numeroID, numeroTel, FK_identiteID)

    Auquel cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO tblPhone(numeroTel, FK_identiteID)
    SELECT t.numeroTel, i.PK_ID
    FROM tblTempo t
    INNER JOIN tblIdentite i ON t.nom = i.nom AND t.prenom = i.prenom AND t.dateNaiss = i.dateNaiss

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Points : 63
    Points
    63
    Par défaut
    Bonjour CinePhil,

    Tout d'abord merci pour ta réponse aussi rapide !

    Pour répondre à ta question : J'ai dans ma table tblPhone un identifiant unique pour chacun des numéros de téléphone PK_numeroID. Ensuite je met cet identifiant dans la table tblIdentite sous forme d'une clé étrangère : FK_numeroID. Ainsi je peux retrouver le numéro de téléphone d'une personne.

    Je pense que c'est correct mais dit moi si tu penses l'inverse ;-)

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Ben moi je pensais justement l'inverse !

    Si tu fais ce que tu dis, ça veut dire qu'à une personne ne correspond qu'un numéro de téléphone et tu peux laisser ce numéro dans la table des personnes.

    J'avais compris que tu cherchais justement à éclater ta table de personnes en deux parce que tu as des personnes qui ont plus d'un numéro de téléphone.

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 61
    Points : 63
    Points
    63
    Par défaut
    Oh d'accord je vois ;-) En fait j'ai repris ces tables pour à simplifier la base de données que j'ai actuellement... Il s'agit de budget pour l'amélioration du patrimoine donc rien à voir avec les 2 tables tblIdentite et tblPhone ! lol

    Ce que je cherche à faire, c'est éclaté ma table tblTempo dans les 2 tables tblIdentite et tblPhone qui sont constituées comme indiquées pécédemment...

    J'ai un soucis parce que je n'arrive pas à retrouver ma foreign key pour un enregistrement. Voilà tu sais tout !

  6. #6
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Tiens CinePhil, un numéro ne peut pas appartenir à plusieurs personnes ?
    Même si dans l'annuaire, on assimile une "personne" à un foyer...


Discussions similaires

  1. Limiter le nombre de requêtes insert sur plusieurs tables
    Par Crackerz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/06/2014, 17h56
  2. INSERT sur plusieurs tables
    Par juniorAl dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/03/2005, 18h59
  3. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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