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 :

4 tables à lier


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Points : 54
    Points
    54
    Par défaut 4 tables à lier
    Salut ,

    Je voudrais connecter 3 tables qui seront regroupés en une

    Table 1: id1 ; num ; ..

    Table 2: id2 ; nom; ..

    Table 3: id3 ; prenom; ..

    TablePrincipale: ID; id1 ; id2 ;id3

    enfaite j'aimerais juste appelé la TablePrincipale pour avoir toutes les informations de la Table 1 , Table 2 , Table 3

    Donc si quelqu'un ma compris

    Si vous voulez plus d'info je suis la
    Il faut se tromper dans la vie, pour apprendre et s'améliorer.

    Etudiant BTS-SIO option SLAM

  2. #2
    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,
    Il suffit de faire une jointure entre la TablePrincipale et chacune des 3 autres tables.
    Je ne vois pas trop où se situe la difficulté ici.

    Tatayo.

  3. #3
    Membre du Club Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Points : 54
    Points
    54
    Par défaut
    Ah donc par exemple Table1 à TablePrincipale; Table2 à TablePrincipale

    d'accord je cherche trop compliqué

    merci
    Il faut se tromper dans la vie, pour apprendre et s'améliorer.

    Etudiant BTS-SIO option SLAM

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    C'est tout de même très curieux d'avoir besoin de deux tables pour trouver d'un coté le nom et de l'autre le prénom d'une même personne
    Pouvez vous expliquer le contexte, peut être y a -t- il des raisons historiques.

    Si les tables obèses sont à fuir comme la peste, une telle modélisation ne vaut pas mieux, sauf explication justifiant cette situation, il serait préférable de créer une nouvelle table qui contienne à la fois le nom, le prénom, la date de naissance ... bref tout ce qui dépend directement de l'identifiant de chaque personne.

    Seule exception à cette règle, les cas de partitionnement vertical pour ne pas encombrer la table principale des colonnes lourdes (images par exemple)

    En l'attente, vous pouvez créer une vue qui fera une jointure entre les différentes tables

  5. #5
    Membre du Club Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Points : 54
    Points
    54
    Par défaut
    Une vue ? je n'ai jamais entendu parler

    les tables que je demande son un simple exemple c'était seulement pour simplifier un maximum mon contexte. Enfaite j'ai 3 formulaire que j'aimerais séparer et dans chaque formulaire représente une thématique on va dire a la fin je donne un récapitulatif qui regroupe tous les formulaires cela correspond a la "tablePrincipale"
    Il faut se tromper dans la vie, pour apprendre et s'améliorer.

    Etudiant BTS-SIO option SLAM

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Wouh pinaize ! Ca sent l'Access à plein nez cette histoire

    Pour faire simple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select a.id, a..., b.num, b..., c.prenom, c..., d.nom, d...
    from tableprincipale a
    inner join table1 b on b.id = a.id
    inner join table2 c on c.id = a.id
    inner join table3 d on d.id = a.id
    where a.id = 12

    Si une des tables "secondaires" peut ne pas avoir de ligne, alors il faut utiliser "left outer join" à la place de "inner join", et on récupère alors des "null" dans les colonnes de la table.

    Une vue, c'est une requête compilée, qu'on peut appeler comme une table.
    Dans Access, ça s'appelle simplement une requête.

    Il suffit donc de créer une vue (ou "requête" dans Access) puis l'utiliser comme si c'était une table :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select id, num, prenom, nom, ...
    from requête1
    where id = 12
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Membre du Club Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Points : 54
    Points
    54
    Par défaut
    Oui j'ai commencé ma formation sur access mais je ne l'utilise plus car je fais du développement web pour mon stage mais le terme vue je ne l'avait jamais vu
    Il faut se tromper dans la vie, pour apprendre et s'améliorer.

    Etudiant BTS-SIO option SLAM

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Et bien c'est très curieux car la vue est la bonne solution pour assurer l'indépendance entre les données et les traitements.
    Dans de nombreuses entreprises, l'accès aux données via une vue est d'ailleurs obligatoire pour cette raison.

    La vue est une présentation logique de tout ou partie des données d'une ou plusieurs tables

    le script de création ressemble à quelque chose comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create view MA_VUE as
           select t1.col1
                , t1.col2
                , t2.colx
                , t2.coly
                , ...
           from table1 T1
           inner join table2 T2
              on T2.colw=T1.colp
           where T1.colx=...
    Vous pouvez aussi restreindre l'accès à certaines colonnes grâce à l'utilisation des vues
    Enfin, il existe des vues particulières, les vues matérialisées, qui permettent d'optimiser l'accès aux données

    Avec les vues, il suffit de remplacer dans vos requêtes SELECT ... FROM MA_TABLE par SELECT ... FROM MA_VUE.

  9. #9
    Membre du Club Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Points : 54
    Points
    54
    Par défaut
    D'accord

    Merci
    Il faut se tromper dans la vie, pour apprendre et s'améliorer.

    Etudiant BTS-SIO option SLAM

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

Discussions similaires

  1. remplir une table temporaire avec deux table lier
    Par fatyben dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/04/2018, 10h16
  2. Réponses: 5
    Dernier message: 01/03/2013, 22h23
  3. pb d'insertion dans une table lier a d'autres
    Par s.mustapha86 dans le forum Hibernate
    Réponses: 6
    Dernier message: 19/07/2008, 20h13
  4. gestion des tables lier
    Par poxvx dans le forum Access
    Réponses: 2
    Dernier message: 11/12/2007, 16h04
  5. comment lier deux tables?????
    Par baboune dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/03/2004, 14h45

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