This section of Slick's documentation page很奇怪。
什么是拉链连接?它说这意味着:
两个查询的成对连接
但这意味着@。@我不知道
我尝试使用Google搜索“zip join”和“pairwise join”...但没有与数据库有关的结果。
当我搜索“成对”时,我从维基百科得到this,但是......
有人能举例说明拉链连接和普通外连接或内连接之间的区别吗?谢谢!
答案 0 :(得分: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
表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 OUTER JOIN表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
Table1“zip join”到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连接将数据组合成拉链,将一个表中的第一行与另一个表中的第一行配对,第二行与第二行配对,等等。实际上并没有查看该数据。它们可以非常快速地生成,但除非您的数据中已存在某些有意义的顺序,或者您只想生成随机配对,否则它们不会有任何意义