11

Slick 文档页面的这一部分很奇怪。

这个 zip 连接是什么?它说这意味着:

两个查询的成对连接

但这意味着@.@我不知道

我试过用谷歌搜索“zip join”和“pairwise join”......但没有结果与数据库有关。

当我搜索“pairwise”时,我确实从维基百科得到了这个……


有人可以给我一些例子来说明 zip 连接和正常的外部或内部连接之间的区别吗?谢谢!

4

1 回答 1

14

Zip 连接仅在谈论有序集时才有意义。您不是基于列的值加入,而是基于行号加入。

表格1

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

表2

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

Table1 INNER JOIN Table2 ON [color] = [flame] : 仅匹配行

[λ]  [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] : 所有行,尽可能匹配

[λ]  [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 “压缩连接”到表 2:所有行,不管匹配

[λ]  [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 连接像拉链一样组合数据,将一个表的第一行与另一个表的第一行配对,第二个与第二个配对,等等。它实际上并没有查看该数据。它们可以非常快速地生成,但它们没有任何意义,除非您的数据中已经存在一些有意义的顺序,或者您只想生成随机配对

于 2013-07-10T22:00:00.313 回答