11 votes

Qu'est-ce qu'un joint zip ? Avez-vous déjà entendu parler de ça, ou d'une jointure par paire ?

Cette section de la page de documentation de Slick est assez étrange.

Qu'est-ce que ce zip joint ? Il est dit que ça veut dire :

une jointure par paire de deux requêtes

mais je ne sais pas ce que ça veut dire @.@.

J'ai essayé de chercher sur Google "zip join" et "pairwise join"... mais aucun résultat concernant les bases de données.

Je comprends ce de Wikipedia quand je cherche sur "pairwise"...

Quelqu'un pourrait-il me donner quelques exemples illustrant les différences entre une jointure zip et une jointure externe ou interne normale ? Merci !

14voto

Anon Points 4146

Les jointures zip n'ont de sens que lorsqu'on parle d'ensembles ordonnés. Au lieu de faire une jointure basée sur la valeur d'une colonne, vous faites une jointure basée sur le numéro de ligne.

Tableau 1

[]  [color] 
400  violet 
415  indigo 
475  blue   
510  green  
570  yellow 
590  orange 
650  red    

Tableau 2

[flame]  [element]
green    boron
yellow   sodium
white    magnesium
red      calcium
blue     indium

Table1 INNER JOIN Table2 ON [color] = [flame] : seulement les lignes correspondantes

[]  [color]  [flame]  [element]
475  blue     blue     indium 
510  green    green    boron
570  yellow   yellow   sodium
650  red      red      calcium

Table1 OUTER JOIN Table2 ON [color] = [flame]. : toutes les lignes, appariées si possible

[]  [color]  [flame]  [element]
400  violet   NULL     NULL
415  indigo   NULL     NULL
475  blue     blue     indium
510  green    green    boron
570  yellow   yellow   sodium
590  orange   NULL     NULL
650  red      red      calcium
NULL NULL     white    magnesium

Table1 "jointure zip" à Table2 : toutes les lignes, quelle que soit la correspondance

[]  [color]  [flame]  [element]
400  violet   green    boron
415  indigo   yellow   sodium
475  blue     white    magnesium
510  green    red      calcium
570  yellow   blue     indium
590  orange   NULL     NULL
650  red      NULL     NULL

Les jointures zip combinent les données à la manière d'une fermeture éclair, en appariant la première ligne d'une table avec la première ligne de l'autre, la seconde avec la seconde, etc. Il ne s'agit pas de regarder réellement ces données. Elles peuvent être générées très rapidement, mais elles ne signifient rien à moins qu'un ordre significatif ne soit déjà présent dans vos données ou que vous souhaitiez simplement générer des paires aléatoires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X