Page d'Accueil

Les données se joignent

 

Se joint

 

Introduction

En étudiant des rapports, nous avons passé en revue des techniques de faire des données à partir d'une table disponible aux disques d'une autre table. Ceci s'est avéré réduire la duplication et les erreurs de données. Une autre question qui comporte la combinaison des tables se compose créer des disques de plus d'une table et transformer le résultat en une liste simple. C'est la base des données se joint.

Des données se joignent sont une technique de créer une liste de disques de plus qui une table, en utilisant toutes les colonnes de toutes les tables impliquées, ou choisissant seulement les colonnes désirées à partir d'une ou toute les tables impliquées. Ceci signifie que des données se joignent sont essentiellement créées dans trois étapes :

 
  1. Les tables qui seront impliquées dans le joindre
  2. Une colonne qui créera le lien dans chaque table
  3. Un rapport de SQL qui créera les disques

Ce sont les étapes à suivre dans réel. Heureusement, le Microsoft Access fournit tous les moyens de créer visuellement se joint sans écrire un d'une seule ligne du code. En fait, quand nous avons étudié des rapports, nous avons créé se joint sans le réaliser, mais le Microsoft Access a pris soin de tout dans les coulisses. Pour pouvoir comprendre comment se joint sont créés et maintenus, nous travaillera à partir de zéro.

 

Les Tableaux d'un joindre

Avant de créer un joindre, vous devez avoir les tables qui seraient impliquées. Les tables sont créées en utilisant les techniques que nous avons vues dans des leçons précédentes. Il est également important de créer une clef primaire pour chaque table. La table de parent aurait besoin habituellement seulement de cette clef primaire qui serait employée « pour la lier » à une table d'enfant. Voici un exemple d'une telle table :

Si nécessaire, vous pouvez alors créer les disques nécessaires pour ce type de table. Voici un exemple :

En créant la table d'enfant, se rappeler de créer une colonne qui servirait de lien avec la table de parent. Par la bonne) habitude d'a (car nous avons vu quand étudiant des rapports, le nom et le type de données de cette colonne sont le même que la clef primaire de la table de parent. Voici un exemple d'une table d'enfant qui serait jointe à la table ci-dessus de parent :

De nouveau, au besoin, vous pouvez ajouter les disques nécessaires à la table. Voici un exemple :

Étude pratique Étude pratique : La présentation des données se joint

  1. Commencer le Microsoft Access et créer une base de données blanche appelée CarInventory
  2. Dans la section de Tableaux de la fenêtre de base de données, double-cliquer créent le Tableau dans la vue de conception et créent une table comme suit :
     
    Nom de champ Type de données Légende Taille de champ Format D'autres propriétés
    CategoryID AutoNumber Identification de catégorie     Clef primaire
    Catégorie     50    
    DailyRate Nombre Taux quotidien Double Fixe  
    WeeklyRate Nombre Taux hebdomadaire Double Fixe  
    MonthlyRate Nombre Taux mensuel Double Fixe  
    WeekendRate Nombre Taux de week-end Double Fixe  
  3. Économiser la table comme catégories et la commuter à la vue de Datasheet
  4. Créer quelques disques comme suit :
     
     
  5. Fermer la table
  6. Double-cliquer créent le Tableau dans la vue de conception et créent les champs suivants :
     
    Nom de champ Type de données Légende Taille de champ D'autres propriétés
    CarID  AutoNumber Identification de voiture   Clef primaire
    TagNumber   Nombre d'étiquette 50  
    Faire     50  
    Modèle     50  
    CarYear Nombre Année Nombre entier  
    CategoryID Nombre Catégorie    
    HasK7Player Yes/No A le joueur K7 ?    
    HasCDPlayer Yes/No A le joueur de CD ?    
    HasDVDPlayer Yes/No A le joueur de DVD ?    
    Disponible Yes/No Est disponible ?   Valeur par défaut : 1
  7. Économiser la table comme voitures et la fermer
  8. Dans la fenêtre de base de données, cliquer les formes et double-cliquer créent la forme dans la vue de conception
  9. Économiser la forme comme entretien
  10. De la boîte à outils, cliquer le bouton de commande et cliquer la forme. Si les débuts de magicien de bouton de commande, cliquent l'annulation
  11. Changer le nom du bouton en cmdCars
  12. Droit-cliquer le bouton et les événements de construction de clic puis double-cliquent le constructeur de code
  13. Mettre en application l'événement comme suit :
     
    Private Sub cmdCars_Click()
        Dim conCars As ADODB.Connection
        
        Set conCars = Application.CurrentProject.Connection
        
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, " & _
                        "CarYear, CategoryID, HasK7Player, HasCDPlayer, " & _
                        "HasDVDPlayer, Available) VALUES('HAD-722', " & _
                        "'Hyundai', 'Accent', '2003', 1, 0, 0, 1, 1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('CDJ-85F', 'Mercury', 'GrandMarquis', " & _
                        "1998,  4,  0,  0,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('FGE-920', 'Ford', 'Escape', " & _
                        "2004, 6, 0,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('GMM-186', 'Mercury', 'Grand Marquis', " & _
                        "2001, 4,  0,  1,  1,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('GHL-22G', 'Lincoln', 'TownCar', " & _
                        "1998,   4,  0,  1,  1,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('HHS-382', 'Hyundai', 'Sonata', 2002, " & _
                        "2,  0,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('LBN-755', 'Lincoln', 'Navigator', " & _
                        "2000, 6,  1,  1,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
    		    "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
    		    "Available) VALUES('FDX-984', 'Kia', 'Sephia', & _
    		    "2002,   2,  0, 1,  1,  1)"
    
        conCars.Execute _
    	"INSERT INTO Cars(TagNumber, Make, Model, CarYear, CategoryID, " & _
                            "HasK7Player, HasCDPlayer, HasDVDPlayer, Available) " & _
                           "VALUES('AFS-888', 'Ford', 'SportTrac', 1998, 7,  0, " & _
                                "0,  1,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('CAM-422', 'Chevrolet', 'Metro', " & _
                                "2000,   1,  0,  0,  0, 0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                         "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                         "Available) VALUES('QFH-608', 'Ford', 'F150', 2001, 7, " & _
                                "0,  0,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                         "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                         "Available) VALUES('DCC-713', 'Chevrolet', 'Camaro', " & _
                                "2001,   3,  1,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('LFT-268', 'Ford', 'Club Wan', " & _
                                "1998,   5,  0,  1,  1,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                          "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('PBR-69G', 'Buick', 'Regal', 2000, " & _
                                "4,    0,  1,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                        "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                        "Available) VALUES('DBP-832', 'Buick', 'Park Avenue', " & _
                                "2001,   4,  0,  0,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                       "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                   "Available) VALUES('FM-685', 'Ford', 'Mustang Convertible', " & _
                                "2002,   3,  1,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('FAX-48T', 'Mecury', 'Villager', " & _
                                "1999,   5,  1,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                          "Available) VALUES('DPM-42', 'Pontiac', 'Mountana', " & _
                                "2002,   5,  0,  1,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                          "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('AFW-928', 'Ford', " & _
                                "'Windstar Minivan GL',    2001,   5,  0,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('UFX-963', 'Cadillac', " & _
                                "'Sedan de Ville', 1998,   4,  1,  1,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('KCR-656', 'Chevrolet', 'Blazer', " & _
                                "2001,   6,  0,  0,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('LLT-358', 'Lincoln', 'City Car', " & _
                                "2004,   4,  0,  1,  1,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('RBL-618', 'Buick', 'LeSabre', " & _
                                "2002,   4,  0,  1,  1,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('WFV-688', 'Ford', 'E350', 2000, " & _
                                "8,  0,  0,  0,  0)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('GCV-557', 'Chevrolet', 'Camaro', " & _
                                "1999, 3,  0,  1,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('TPG-905', 'Pontiac', 'Grand Am', " & _
                                "2002,   2,  0,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('JYW-682', 'Jeep', 'Wrangler', " & _
                                "2003,   6,  1,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                          "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('DFR-214', 'Ford', 'Ranger', 2000, " & _
                                "7,  0,  0,  1,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                          "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('RKR-670', 'Kia', 'Rio', 2002, " & _
                                "1,  1,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                          "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                          "Available) VALUES('YJC-498', 'Ford', 'Escort', 1996, " & _
                                "1,  0,  0,  0,  1)"
    
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('QDC-922', 'Dodge', 'Caravan', " & _
                                "2002,   5,  1,  0,  0,  0)"
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('DSS-374', 'Hyundai', 'Accent', " & _
                                "1996,   1,  0,  0,  0,  1)"
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                           "Available) VALUES('SCC-262', 'Chrysler', 'Concorde', " & _
                                "2002,   4,  0,  1,  1,  1)"
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                               "Available) VALUES('BDI-588', 'Dodge', 'Intrepid', " & _
                                "2004,   2,  1,  0,  0,  0)"
        conCars.Execute "INSERT INTO Cars(TagNumber, Make, Model, CarYear, " & _
                           "CategoryID, HasK7Player, HasCDPlayer, HasDVDPlayer, " & _
                                "Available) VALUES('MCM-952', 'Jaguar', 'S-Type', " & _
                                "1999,   4,  0,  1,  1,  1)"
        conCars.Close
        Set conCars = Nothing
    End Sub          
  14. Revenir à la forme et la commuter à la vue de forme
  15. Cliquer le bouton
  16. Économiser et fermer la forme

Joindre la création

Équipé des tables nécessaires et de leurs colonnes, vous pouvez créer la jointure. Pour faire ceci, sur le menu principal du Microsoft Access, vous pouvez cliquer l'insertion - > question et, dans la nouvelle zone de dialogue de question, vue de conception de clic. Vous seriez présentés avec la zone de dialogue de Tableau d'exposition. Vous pouvez choisir une table et le clic s'ajoutent. Puisque la base d'un joindre se trouve sur de diverses tables, vous devriez ajouter au moins deux tables. Après avoir ajouté les tables, fin de clic. Voici un exemple :

Si un rapport était déjà établi entre les tables, une ligne se joignante le montrerait. Même si aucun rapport n'existait déjà, après choix des tables, si le Microsoft Access trouve un terrain communal employé par une clef primaire de la table de parent et une clef étrangère dans la table d'enfant, elle créerait une ligne de enchaînement entre les deux tables.

Car nous verrons, vous pouvez visuellement créer un associer à la fenêtre choisie de question ou vous pouvez écrire le code pour le faire. Pour écrire le code, vous pouvez droit-cliquez la fenêtre et cliquez la vue de SQL.

Dans le SQL, la formule de base pour créer un joindre est :

SELECT WhatColumn(s)
FROM ChildTable
TypeOfJoin ParentTable
ON Condition

Le facteur de ChildTable indique la table qui tient les disques qui seront recherchés. Il peut être représenté comme suit :

SELECT WhatColumn(s)
FROM Persons
TypeOfJoin ParentTable
ON Condition

Le facteur de ParentTable indique la table qui tient la colonne avec la clef primaire qui commandera ce qui enregistre, s'est reliée à la table d'enfant, celle montrera. Ce facteur serait représenté comme suit :

SELECT WhatColumn(s)
FROM Persons
TypeOfJoin Genders
ON Persons.GenderID = Genders.GenderID

Le facteur de condition est une expression logique employée pour valider les disques qui seront isolés. Pour créer la condition, vous devriez assigner la colonne principale primaire de la table de parent à la colonne principale étrangère de la table d'enfant. Puisque, et si, les deux colonnes ont probablement le même nom, pour les distinguer, leurs noms devraient être qualifiés. Ceci serait fait comme suit :

SELECT WhatColumn(s)
FROM Persons
TypeOfJoin Genders
ON Persons.GenderID = Genders.GenderID

Le facteur de WhatColumn de notre formule te permet de faire une liste des colonnes que vous voulez inclure dans votre rapport. Comme vous devriez se rendre compte, vous pouvez inclure toutes les colonnes en employant * l'opérateur. Voici un exemple :

SELECT *
FROM Persons
TypeOfJoin Genders
ON Persons.GenderID = Genders.GenderID

Dans ce cas-ci, toutes les colonnes de toutes les tables seraient incluses dans le résultat. Au lieu de toutes les colonnes, vous pouvez vouloir une liste restreinte. Dans ce cas-ci, créer la liste après le mot-clé CHOISI les séparant avec des virgules. Vous pouvez employer le nom d'une colonne normalement si ce nom n'est pas reproduit dans plus d'une colonne. Voici un exemple :

SELECT LastName, FirstName, Gender
FROM Persons
TypeOfJoin Genders
ON Persons.GenderID = Genders.GenderID

Si le même nom d'une colonne est trouvé dans plus d'une table, de même que le point de droit pour une combinaison principale primaire-étrangère, vous devriez qualifier le nom. Voici un exemple :

SELECT LastName, FirstName, Persons.GenderID,
             Genders.GenderID, Gender
FROM Persons
TypeOfJoin Genders
ON Persons.GenderID = Genders.GenderID

En fait, pour faciliter votre code pour lire, vous devriez qualifier le nom de chaque colonne de votre rapport CHOISI. Voici un exemple :

SELECT Persons.LastName, Persons.FirstName, Persons.GenderID,
             Genders.GenderID, Genders.Gender
FROM Persons
TypeOfJoin Genders
ON Persons.GenderID = Genders.GenderID

Les types de se joint

 

Introduction

En étudiant des rapports de données, nous avons vu le rôle des clefs primaires et étrangères en maintenant l'échange d'information entre deux tables. Cette technique de l'enchaînement ajourne des jeux par partie en créant un joindre. Elle te permet de décider si vous voulez inclure tous les disques ou isoler seulement certains d'entre eux. Pour respecter la direction d'un rapport entre deux tables pendant qu'il est appliqué à une question, les appuis de SQL deux types de se joint.

Intérieur se joint

Vous imaginer pour avoir deux tables qui peuvent être liées par la clef primaire à un et la clef étrangère d'une autre personne.

Noter que quelques disques dans la table de personnes n'ont pas une entrée. En créant une question des disques de la table de personnes, si vous voulez que votre liste inclue seulement les disques qui ont une entrée, vous pouvez la créer comme intérieure joindre. Pour faire ceci, vous indiqueriez le facteur de TypeOfJoin de notre formule avec l'expression INTÉRIEURE VOUS JOIGNEZ. Voici un exemple :

SELECT Persons.LastName, Persons.FirstName, Persons.GenderID,
             Genders.GenderID, Genders.Gender
FROM Persons
INNER JOIN Genders
ON Persons.GenderID = Genders.GenderID

Ceci produirait :

Par défaut, en créant une nouvelle question, si un rapport était déjà établi entre les deux tables, la question est rendue un intérieur joindre. S'il n'y avait aucun rapport explicitement établi entre les deux tables, vous devriez convenablement éditer le rapport de SQL. Dans ce cas-ci, vous avez deux options. Vous pouvez traîner la clef primaire de la table de parent et la laisser tomber sur la clef étrangère dans la table d'enfant :

En tant qu'autre option, vous pouvez éditer le rapport de SQL manuellement pour lui faire un intérieur se joindre.

Nous avons cité précédemment que vous pourriez inclure toutes les colonnes dans la question. Dans notre résultat, puisque nous sommes plus intéressés par le genre du chaque des personnes disque, nous n'aurions pas besoin de la colonne de GenderID de la table de genres.

Étude pratique Étude pratique : Employer intérieur se joint

  1. Sur la fenêtre de base de données, cliquer le bouton de questions
  2. Sur le menu principal, cliquer l'insertion - > question
  3. Dans la nouvelle zone de dialogue de question, double-cliquer la vue de conception
  4. Sur la zone de dialogue de Tableau d'exposition, double-cliquer les catégories et les voitures
  5. Cliquer étroitement
  6. Dans les catégories énumérer, double-cliquer la catégorie
  7. Dans les voitures énumérer, double-cliquer font, modèlent, CarYear, et disponible
  8. Économiser la question comme CarsInventory
     
  9. Droit-cliquer quelque part dans la fenêtre et cliquer la vue de SQL
     
  10. Noter l'INTÉRIEUR POUR JOINDRE l'expression dans le rapport.
    Pour visionner le résultat, droit-cliquer la barre de titre de la fenêtre et cliquer la vue de Datasheet
     
  11. Après visionnement du résultat, droit-cliquer la barre de titre de la fenêtre et cliquer la conception de question

Externe se joint

 

Introduction

Au lieu de montrer seulement les disques qui ont des entrées dans la table d'enfant, vous pouvez vouloir que votre question inclue tous les disques, y compris ceux qui sont nuls. Pour obtenir ce résultat, vous créeriez un externe vous joignez. Vous avez trois options.

Externe gauche se joint

Un externe gauche se joint produit tous les disques de la table d'enfant, également appelés la table droite. Les disques de l'enfant ajournent qui n'ont pas une entrée dans la colonne principale étrangère sont marqués en tant que NULLE.

Pour créer un externe gauche joindre, vous pouvez remplacer le facteur de TypeOfJoin de notre formule avec la GAUCHE VOUS JOIGNEZ ou EXTERNES GAUCHES SE JOIGNENT. Voici un exemple :

SELECT Persons.PersonID, Persons.FirstName, Persons.LastName, 
             Genders.GenderID, Genders.Gender
FROM Persons
LEFT OUTER JOIN Genders
ON Persons.GenderID = Genders.GenderID

Ceci produirait :

Noter que le résultat inclut tous les disques de la table de personnes (également appelées la droite) et les disques qui n'ont pas une entrée dans la colonne de GenderID des personnes (la droite) que la table sont laissées vide.

Pour créer un externe gauche s'associer aux données dans la fenêtre de Tableau, après établissement d'un rapport entre les deux tables, vous pouvez droit-cliquez la ligne qui les joint et le clic joignent des propriétés :

Dans la zone de dialogue de propriétés de joindre, lire et cliquer le bouton 2 par radio et cliquer BIEN :

Ceci changerait le joindre en gauche se joignent.

Étude pratique Étude pratique : Employer externe gauche se joint

  1. Droit-cliquer la barre de titre de la fenêtre et cliquer la VUE de SQL
  2. Changer l'INTÉRIEUR JOIGNENT l'expression à EXTERNE GAUCHE SE JOIGNENT
     
  3. Droit-cliquer la barre de titre de la fenêtre et cliquer la conception de question
     
  4. Pour voir le résultat, droit-cliquer la barre de titre de la fenêtre et cliquer la vue de Datasheet
  5. Noter que le résultat est identique
  6. Droit-cliquer la barre de titre de la fenêtre et cliquer la conception de question
  7. Ajouter quelques colonnes, dans les voitures énumèrent, traînent HasCDPlayer et le laissent tomber sur disponible dans la section inférieure
  8. Dans les catégories énumérer, cliquer DailyRate, serrer et tenir Ctrl
  9. Cliquer WeekendRate et libérer Ctrl
  10. Traîner les colonnes choisies et les laisser tomber sur disponible dans la section inférieure
     
  11. Droit-cliquer quelque part dans la fenêtre et cliquer la vue de Datasheet 
     
  12. Droit-cliquer la barre de titre de la fenêtre et cliquer la vue de SQL

Externe droit se joint

Un externe droit se joint considère tous les disques de la table de parent et trouve un disque assorti dans la table d'enfant. Pour faire ceci, il commence par le premier disque de la table de parent (dans ce cas-ci la table de genres) et des expositions chaque disque de la table d'enfant (dans ce cas-ci la table de personnes) qui a une entrée correspondante. Ceci signifie que, à notre exemple, un externe droit s'associe créerait la première fois une liste des disques de personnes qui ont une 1 valeur (femelle) pour la colonne de GenderID. Après que le premier disque, l'externe droit joigne des mouvements au deuxième disque, et ainsi de suite, chaque fois que énumérant les disques de l'enfant ajournent qui ont une entrée correspondante pour la clef primaire de la table de parent.

Pour créer un externe droit joindre, vous peut remplacer le facteur de TypeOfJoin de notre formule avec EXTERNE DROIT SE JOIGNENT. Voici un exemple :

SELECT Persons.PersonID, Persons.FirstName, Persons.LastName, 
             Genders.GenderID, Genders.Gender
FROM Persons
RIGHT OUTER JOIN Genders
ON Persons.GenderID = Genders.GenderID

Ceci produirait :

Noter que le résultat de question commence par le premier disque de la table de parent, également appelé la table gauche (dans ce cas-ci la table de genres), et des listes les disques de la table d'enfant, également appelés la table droite (dans ce cas-ci la table de personnes), qui ont l'entrée correspondre à ce premier disque. Alors il se déplace à la prochaine valeur de GenderID.

Pour créer un externe droit s'associer à la fenêtre choisie de question, après établissement d'un rapport entre les deux tables, vous pouvez droit-cliquez la ligne qui les joint et le clic joignent des propriétés. Puis, dans la zone de dialogue de propriétés de joindre, cliquer le bouton 3 par radio :

Et OK de clic

Étude pratique Étude pratique : Employer externe droit se joint

  1. Remplacer le mot À GAUCHE avec la DROITE
     
  2. Droit-cliquer la barre de titre et cliquer la conception de question
     
  3. Droit-cliquer la ligne entre les tables et le clic joignent des propriétés
     
  4. OK de clic
  5. Droit-cliquer quelque part dans la fenêtre et cliquer la vue de Datasheet
  6. Droit-cliquer la barre de titre de la fenêtre et cliquer la conception de question
  7. Double-cliquer la ligne entre les deux listes
  8. Dans la zone de dialogue de propriétés de joindre, cliquer le bouton 2 par radio et cliquer BIEN

Se joint et analyse de données

 

Introduction

Comme démontré jusqu'ici et dans des leçons précédentes, la raison principale de créer des questions est d'isoler des disques. Ceci est fait en utilisant des conditions et des critères. Se joint augmentent ces possibilités parce qu'ils te permettent de considérer des disques de différentes tables et de les inclure dans un rapport commun de SQL.

Au s'associe nous ont créé jusqu'ici, nous avons considéré tous les disques et avons laissé le moteur de base de données les énumérer employant seulement les règles de joint la fonction intégrée le SQL. Pour rendre une telle liste plus utile ou restrictive, vous pouvez poser vos propres conditions qui devraient être respectées pour isoler des disques comme un entonnoir. Comme fait dans les sections précédentes au sujet des questions, pour inclure un critère dans un rapport CHOISI, vous pouvez créer clause.

Employer des critères

Pour créer un critère dans une question, choisir d'abord une colonne pour la montrer dans la section inférieure. Juste comme passé en revue dans les leçons précédentes en créant une question, pour indiquer un critère, dans les critères de boîte correspondant à la colonne, type la condition en utilisant les opérateurs l'uns des que nous avons passés en revue dans des leçons précédentes. Voici un exemple :

Après l'indication des critères, le moteur de base de données l'inclurait automatiquement dans le rapport de SQL :

Et vous pouvez regarder le résultat :

Noter que seulement les disques de personnes avec un affichage femelle d'entrée.

Étude pratique Étude pratique : Employer des critères avec se joint

  1. Cliquer les critères de champ qui correspond à la colonne et au type disponibles =True
  2. Cliquer la boîte de contrôle de la même colonne à l'espace libre il
  3. Ajouter les autres colonnes comme vous voyez l'ajustement
     
  4. Droit-cliquer quelque part dans la fenêtre et cliquer la vue de SQL
     
  5. Pour regarder le résultat, droit-cliquer la barre de titre de la fenêtre et cliquer la vue de Datasheet
  6. Économiser et clôturer la question

 


Précédent Copyright © Yevol, 2007 Suivant