![]() |
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 : |
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 :
É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
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.
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.
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.
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
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 OÙ clause.
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.
|
|
|
||
| Précédent | Copyright © Yevol, 2007 | Suivant |
|
|
||