<Précédent | Table des matières | Suivant>
rejoindre
À certains égards, rejoindre c'est comme paste en ce sens qu'il ajoute des colonnes à un fichier, mais il utilise une méthode unique pour le faire. rejoindre est une opération généralement associée à bases de données relationnelles où les données de plusieurs les tables avec un champ clé partagé est combiné pour former un résultat souhaité.
Quand vous vous déconnectez, votre profil rejoindre Le programme effectue la même opération : il joint les données de plusieurs fichiers à partir d'un champ clé partagé.
Pour comprendre l'utilisation d'une jointure dans une base de données relationnelle, imaginons une base de données très petite composée de deux tables, chacune contenant un seul enregistrement. La première table, appelée CLIENTS, comporte trois champs : un numéro de client (CUSTNUM), son prénom (FNAME) et son nom (LNAME).
NUMÉRO PERSONNALISÉ | FNOM | LNOM |
======== | ===== | ====== |
4681934 | John | Smith |
La deuxième table s'appelle ORDERS et contient quatre champs : un numéro de commande (ORDER-NUM), le numéro de client (CUSTNUM), la quantité (QUAN) et l'article commandé (ITEM).
NUMÉRO DE COMMANDE | NUMÉRO PERSONNALISÉ | QUAN | ARTICLE |
======== | ======= | ==== | ==== |
3014953305 | 4681934 | 1 | Widget bleu |
Notez que les deux tables partagent le champ CUSTNUM. Ceci est important, car cela permet d'établir une relation entre les tables.
Une jointure permettrait de combiner les champs des deux tables pour obtenir un résultat utile, comme la préparation d'une facture. En utilisant les valeurs correspondantes des champs CUSTNUM des deux tables, une jointure pourrait produire le résultat suivant :
FNOM | LNOM | QUAN | ARTICLE |
===== | ===== | ==== | ==== |
John | Smith | 1 | Widget bleu |
Pour démontrer le rejoindre Pour ce faire, nous allons créer quelques fichiers avec une clé partagée. Pour cela, nous utiliserons notre distributions-par-date.txt Fichier. À partir de ce fichier, nous allons créer deux fichiers supplémentaires, l'un contenant les dates de sortie (qui constitueront notre clé partagée pour cette démonstration) et l'autre les noms des versions :
[moi@linuxbox ~]$ couper -f 1,1 distros-by-date.txt > distros-names.txt [moi@linuxbox ~]$ coller distros-dates.txt distros-names.txt > distros-key-names.txt
[moi@linuxbox ~]$ tête distros-key-names.txt
11/25/2008 Fedora 10/30/2008 Ubuntu 06/19/2008 SUSE
05/13/2008 Fedora 04/24/2008 Ubuntu 11/08/2007 Fedora 10/18/2007 Ubuntu
[moi@linuxbox ~]$ couper -f 1,1 distros-by-date.txt > distros-names.txt [moi@linuxbox ~]$ coller distros-dates.txt distros-names.txt > distros-key-names.txt
[moi@linuxbox ~]$ tête distros-key-names.txt
11/25/2008 Fedora 10/30/2008 Ubuntu 06/19/2008 SUSE
05/13/2008 Fedora 04/24/2008 Ubuntu 11/08/2007 Fedora 10/18/2007 Ubuntu
10/04/2007 SUSE
05/31/2007 Fedora 04/19/2007 Ubuntu
10/04/2007 SUSE
05/31/2007 Fedora 04/19/2007 Ubuntu
et le deuxième fichier, qui contient les dates de sortie et les numéros de version :
[moi@linuxbox ~]$ couper -f 2,2 distros-by-date.txt > distros-vernums.txt [moi@linuxbox ~]$ coller distros-dates.txt distros-vernums.txt > distro s-key-vernums.txt
[moi@linuxbox | ~]$ tête distros-key-vernums.txt |
11/25/2008 | 10 |
10/30/2008 | 8.10 |
06/19/2008 | 11.0 |
05/13/2008 | 9 |
04/24/2008 | 8.04 |
11/08/2007 | 8 |
10/18/2007 | 7.10 |
10/04/2007 | 10.3 |
05/31/2007 | 7 |
04/19/2007 | 7.04 |
Nous avons maintenant deux fichiers avec une clé partagée (le champ « date de sortie »). Il est important de souligner que les fichiers doivent être triés selon le champ « clé » pour rejoindre pour fonctionner correctement.
[moi@linuxbox ~]$ rejoindre distros-key-names.txt distros-key-vernums.txt | tête
11/25/2008 Fedora 10
10/30/2008 Ubuntu 8.10
06/19/2008 SUSE 11.0
05/13/2008 Fedora 9
04/24/2008 Ubuntu 8.04
11/08/2007 Fedora 8
10/18/2007 Ubuntu 7.10
10/04/2007 SUSE 10.3
05/31/2007 Fedora 7
04/19/2007 Ubuntu 7.04
[moi@linuxbox ~]$ rejoindre distros-key-names.txt distros-key-vernums.txt | tête
11/25/2008 Fedora 10
10/30/2008 Ubuntu 8.10
06/19/2008 SUSE 11.0
05/13/2008 Fedora 9
04/24/2008 Ubuntu 8.04
11/08/2007 Fedora 8
10/18/2007 Ubuntu 7.10
10/04/2007 SUSE 10.3
05/31/2007 Fedora 7
04/19/2007 Ubuntu 7.04
Notez également que, par défaut, rejoindre utilise un espace comme délimiteur de champ d'entrée et un espace comme délimiteur de champ de sortie. Ce comportement peut être modifié en spécifiant des options. Voir rejoindre page de manuel pour plus de détails.