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

MS SQL Server Discussion :

Insertion de champs avec jointure


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Insertion de champs avec jointure
    Bonjour,

    Petit problème sur une insertion de champs avec jointure...
    3 tables :
    Table 1 :
    ------------
    | CONTENUE |
    |------------- |
    |ZONE| type nvarchar (255)
    |PAYS| type nvarchar (255)
    -----
    Table 2 :
    --------------
    | ZONE |
    |------------- |
    |ID_ZONE | auto increment type int
    |ZONE_NAME | nvarchar (255)> recupère les zones depuis CONTENUE:OK
    ---------------
    Table 3 :
    ------------------
    | COUNTRY |
    |-----------------|
    |ID_COUNTRY |auto increment type int
    |COUNTRY_NAME |nvarchar (255)> recupère les zones depuis CONTENUE:OK
    |ID_ZONE |Problème !!
    -------------------

    Mon problème est le suivant je voudrais récupérer dans COUNTRY les ID_ZONE de la table ZONE en fonction des pays de CONTENUE. COUNTRY.ID_ZONE est une clé étrangère de ZONE.ID_ZONE.

    J'affiche bien les informations avec cette commende :
    SELECT ZONE.ID_ZONE, CONTENUE.ZONE, CONTENUE.COUNTRY
    FROM CONTENUE INNER JOIN
    COUNTRY AS COUNTRY_1 ON CONTENUE.COUNTRY = COUNTRY_1.COUNTRY_NAME INNER JOIN
    ZONE ON CONTENUE.ZONE = ZONE.ZONE_NAME
    Voila pour l'instant je bug sur le insert

    Si quelqu'un a une idée merci d'avance.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 141
    Points : 176
    Points
    176
    Par défaut
    Le code ci-dessous permet la mise à jour du champ Id_Zone après avoir insérer les records dans les tables Country et Zone.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Country
    SET Country.Id_Zone = Zone.Id_Zone
    FROM Country, Zone
    WHERE Country.Country_Name = Zone.Zone_Name
    Je pense qu'avec cela, ca doit être bon

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Je pense que dans ta table CONTENUE tu devrais avoir ID_ZONE en clé étrangère au lieu de ZONE.
    Ensuite tu pourrais implémenter un Trigger d'insertion sur ta table principale d'insertion afin de mettre à jour les deux autres. Biensûr tout dépend du volume de données que tu insères et la fréquence des insertions.

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci de vos réponses
    Mais :
    Fabrice Moll cela ne peux pas fonctionner puisque seul la table contenue peux joindre le nom du pays et la zone ta requete est donc je pense fausse
    Madinico Malheuresement la table CONTENUE n'est pas modifiable

    Si vous avez d'autres proposition merci de m'en faire part

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 141
    Points : 176
    Points
    176
    Par défaut
    Ok, donc si je reprend votre requête de sélection comme vous l'avez indiqué cela devrait donner ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE Country
    SET Country.Id_Zone = Zone.Id_Zone
    FROM Country, Zone, Contenue
    WHERE Contenue.Country = Country.Country_Name 
    AND Contenue.Zone= Zone.Zone_Name
    Est-ce que cela peut fonctionner pour vous?

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Je suis arrivé au meme résultat et cela fonctionne parfaitement


    Merci

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

Discussions similaires

  1. [Débutant] Dapper : insertions et update avec jointures
    Par Monkey_D.Luffy dans le forum Accès aux données
    Réponses: 1
    Dernier message: 26/08/2014, 09h06
  2. insertion des id avec jointure
    Par aghilass dans le forum Développement
    Réponses: 1
    Dernier message: 18/12/2012, 11h52
  3. Problème pour insertion dans tables avec jointure
    Par C3DRIC49 dans le forum Langage
    Réponses: 8
    Dernier message: 15/10/2010, 21h52
  4. [MySQL] insertion dans table avec jointure
    Par popoche28 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 06/05/2010, 16h15
  5. Réponses: 4
    Dernier message: 21/05/2007, 18h20

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