Что такое zip? Вы когда-нибудь слышали об этом или попарно?

Этот раздел страницы документации Slick довольно странный.

Что это за клик? В нем говорится, что это означает:

попарное соединение двух запросов

но что это значит @. @Я не знаю

Я пробовал Googling для обоих "zip join" и "pairwise join"... но никаких результатов с базами данных не было.

Я получаю этот из Википедии, когда я ищу "попарно", хотя...


Может ли кто-нибудь дать мне несколько примеров, иллюстрирующих различия между zip-соединением и нормальным внешним или внутренним соединением? Спасибо!

Ответ 1

Сочетания Zip имеют смысл только при разговоре о упорядоченных наборах. Вместо того, чтобы соединяться в зависимости от значения столбца, вы соединяетесь на основе номера строки.

Таблица1

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

Table2

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

Таблица 1 INNER JOIN Таблица2 ON [цвет] = [пламя]: только соответствующие строки

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

Таблица 1 ВНУТРЕННЯЯ СОЕДИНЯТЬ Таблица2 ON [цвет] = [пламя]: все строки, по возможности согласованные

[λ]  [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

Таблица 1 "zip join" to Table2: все строки, независимо от соответствия

[λ]  [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

Сочетания Zip объединяют данные, такие как молния, соединяющие первую строку из одной таблицы с первой строкой от другой, вторую парную со второй и т.д. На самом деле она не смотрит на эти данные. Они могут быть сгенерированы очень быстро, но они ничего не будут означать, если в ваших данных уже нет значимого порядка, или если вы просто хотите генерировать случайные пары