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 :

Lier le champ d'une table à une autre [Débutant(e)]


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut Lier le champ d'une table à une autre
    Bonjour,

    Je dois lier le champ d'une table lors de sa création (ou après) à un autre champ d'une table référence, comment faire s'il vous plait ? (table1.diagnostic.id à table2.diagnostic_id)

    PS : Je suis sur management studio

    Merci d'avance,

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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,

    pour la partie SQL lisez ceci : http://sqlpro.developpez.com/cours/s...partie2#L7.1.7

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut
    En fait, j'ai déjà créé mes tables, mais je veux joindre un champ de ces tables avec une autre mais même en lisant ton document je ne vois pas comment faire

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    oki, qu'entendez-vous exactement par joindre ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut
    J'entends par joindre "lier".

    J'ai une table de référence avec un table1.diagnostic.id, je voudrais lié cet id au champ id de la table que je viens de créer (table2.diagnostic_id).

    Dans ma table 2, j'ai des données dans une colonne qui me permettent de déterminer automatiquement l'id que j'ai lié. Du coup, quand je met une donnée dans ma colonne code, il déduit automatiquement.

    Je suis désolée de ne pas être clair mais je débute , merci en tout cas de ton soutien ^^

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    non c'est pas claire.


    Si vous voulez sélectionner des données afin de les afficher, tournez vous vers la clause SELECT.

    Si vous voulez mettre à jour des données d'une ligne tournez vous vers la clause UPDATE.

    Si vous voulez insérez une nouvelle ligne dans une table tournez vous du côté de la clause INSERT.

    Si vous voulez créer une relation entre deux table (contrainte) c'est le lien au dessus.


    Quant aux jointures entre différente table (généralement pour une sélection de donnée) regardez du côté des jointures interne ou externe.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut
    Sur management studio, si j'écris cette requête et que je l'enregistre, mes tables sont elles liées ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT        dbo.algoCancerV1Ghm.ghm_id, 2012.dbo.ghm.id
    FROM            dbo.algoCancerV1Ghm INNER JOIN
                            2012.dbo.ghm 
    ON dbo.algoCancerV1Ghm.codeGhm = 2012.dbo.ghm.codeGhm
    Je travail sur 2 bases différentes

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Cette requete permet de sélectionner (restitution uniquement) les lignes présentent dans la table algoCancerV1Ghm et présente ghm avec la condition de jointure indiquée.

    Ca s’arrête là.

    Si pour vous "liéer" correspond à la description que je viens de faire, oui, sinon non :p

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut
    Mes tables ont 2 champs en commun, je voudrais les lier via l'id pour lorsque je rentre le 2e champ, l id s'implémente automatiquement sur ma table algocancer

  10. #10
    Membre averti
    Avatar de diablo-dz
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 327
    Points
    327
    Par défaut
    Bonjour
    tu peux être plus clair on donnent :
    1-la structure de tes tables.
    2-le résultat souhaiter avoir
    3-pour quoi tu veux quelle soit relie : pour mise a jour ou sélection , ajout ....ect
    A+
    ,
    Si une réponse vous a permis d'avancer , n'oublie pas de mettre
    Ne pas oublier

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut
    1 - alors mes tables sont comme ceci :
    Table1 = diagnostic.id, codeDiag, liste1, liste 3
    Table2 = diagnostic_id, codeDiag,liste4

    2- le résultat est que lorsque je met dans ma table2 un codeDiag, il implémente automatiquement le diagnostic_id correspondant.

    3 - je souhaite faire une MAJ de la table 2.

    Il se peut que je ne sois pas clair, si c'est le cas j'abandonne ^^ je ne suis pas obligé de faire cet étape

  12. #12
    Membre averti
    Avatar de diablo-dz
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Points : 327
    Points
    327
    Par défaut
    Bonsoir
    essaye avec cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update base2.dbo.Table2 
             SET base2.dbo.Table2.ccodeDiag=(select base1.dbo.Table1.codeDiag 
                                                           from base1.dbo.Table1
                                                           where base1.dbo.Table1.diagnostic.id=base2.dbo.Table2.diagnostic.id)
    Si une réponse vous a permis d'avancer , n'oublie pas de mettre
    Ne pas oublier

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Encore une fois, cette requete mettra à null tous les ccodeDiag des lignes qui ne satisfont pas la condition de jointure.

    Est-ce voulu ?

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Vu que la table 2 doit être mise à jour lors d'une modification d'une ligne de la table 1, il me semble qu'un trigger sur la table 1 soit la solution.

    Tatayo.

  15. #15
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Je pense surtout qu'il faudrait revoir la modélisation.

    Quelles sont les clefs primaires et étrangères de ces deux tables.

    Si j'ai bien compris, la colonne diagnostic_id n'a rien a faire dans la table 2. mais il faudrait en savoir plus pour être précis (table1 et table2 n'est pas très explicite)

    je ne suis pas obligé de faire cet étape
    Alors c'est bien que vous ne devriez pas.

    Éventuellement, créez une vue pour simplifier vos requêtes par la suite

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Mai 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant communication & réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 31
    Points : 36
    Points
    36
    Par défaut
    Franchement un grand merci pour vous donner du mal pour moi piètre débutante,

    la fonction update m a effectivement permis de mettre a jour mes id via le code diagnostic, je suis très limité et cela semble fonctionner.

    Merci encore Punkoff, Tatayo et diablo-dz.

    Je vous souhaite pleins de réussite

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

Discussions similaires

  1. Lier deux champs d'une table à une seconde table
    Par plastic1st dans le forum ORM
    Réponses: 2
    Dernier message: 30/03/2011, 10h58
  2. [AC-2007] Mise à jour des champs (pas null) d'une table vers une autre table
    Par Daniel-Gérald dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/11/2009, 11h27
  3. Copie d'un champ d'une table à une autre
    Par dodo91 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 13/05/2009, 11h29
  4. Réponses: 4
    Dernier message: 06/03/2007, 12h00
  5. fusion de plusieurs champs d'une table à une autre
    Par reolik dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/02/2006, 08h39

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