Mer*_*ith 10 sql database scala slick
Slick的文档页面的这一部分很奇怪.
什么是拉链连接?它说它意味着:
两个查询的成对连接
但这意味着什么@.@我不知道
我已经尝试使用谷歌搜索"zip join"和"pairwise join"...但没有结果与数据库.
当我搜索"成对"时,我确实从维基百科得到了这个 ...
有人能举例说明拉链连接和普通外连接或内连接之间的区别吗?谢谢!
Ano*_*non 14
Zip连接仅在讨论有序集时才有意义.您将根据行号加入,而不是根据列的值进行连接.
表格1
[?] [color]
400 violet
415 indigo
475 blue
510 green
570 yellow
590 orange
650 red
Run Code Online (Sandbox Code Playgroud)
表2
[flame] [element]
green boron
yellow sodium
white magnesium
red calcium
blue indium
Run Code Online (Sandbox Code Playgroud)
表1 INNER JOIN表2 ON [颜色] = [火焰]:仅匹配行
[?] [color] [flame] [element]
475 blue blue indium
510 green green boron
570 yellow yellow sodium
650 red red calcium
Run Code Online (Sandbox Code Playgroud)
表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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
Zip连接将数据组合成拉链,将一个表中的第一行与另一个表中的第一行配对,第二行与第二行配对,等等.实际上并没有查看该数据.它们可以非常快速地生成,但除非您的数据中已存在某些有意义的顺序,或者您只想生成随机配对,否则它们不会有任何意义