join
coreutils中的让我想起SQL中的equijoin。
join
将具有相同连接字段的每对输入行写入标准输出。
我不太清楚join
coreutile 手册的作用。您能解释一下join
SQL 中的等值连接或关系代数中的运算是什么意思吗?
哪些字段需要具有相同的值?
和 等值连接之间有什么区别join
?
谢谢。
答案1
默认情况下,该join
实用程序会执行 SQL 中所谓的“内部联接”,从而生成两个文件中联接字段相同的条目的组合记录。是的,这是一个“等连接”,因为它使用相等来进行字段之间的测试。
该join
实用程序可以执行内部连接(默认)以及左、右和外部连接(分别使用-a1
、-a2
和-a1 -a2
)。所有这些连接都是“等连接”,join
因为相等用于比较。
默认情况下,连接字段是每个文件中的第一个空格分隔的字段,但这可以使用-1
和-2
命令行选项(分别用于选择第一个和第二个文件中的连接字段)进行更改,并且分隔符可以更改为另一个单个字符使用-t
.
默认行为join
类似于
SELECT * FROM table1 JOIN table2 ON (table1.firstfield = table2.firstfield);
只不过您只会获得连接字段的一份副本(firstfield
此处)。