一方または両方の入力ファイルに存在しない結合フィールドを指定するとどうなりますか?

一方または両方の入力ファイルに存在しない結合フィールドを指定するとどうなりますか?

ファイルが2つあります。

$ cat file1
c c1
b b1
$ cat file2
a a2
c c2
b b2

一方または両方の入力ファイルに存在しない結合フィールドを指定するとどうなりますか?

次の外部結合が出力を生成するのはなぜですか?関係代数学の外部結合と一致しますか? (SQLは存在しない結合フィールドの指定を許可しません)

ありがとうございます。

$ join -a 1 -a 2 -o auto -t " " -e NULL  -1 1 -2 5 <(sort file1) <(sort file2)
NULL NULL a a2
NULL NULL b b2
NULL NULL c c2
b b1 NULL NULL
c c1 NULL NULL

$ join -a 1 -a 2 -o auto -t " " -e NULL  -1 5 -2 1 <(sort file1) <(sort file2)
NULL b b1 NULL
NULL c c1 NULL
a NULL NULL a2
b NULL NULL b2
c NULL NULL c2

$ join -a 1 -a 2 -o auto -t " " -e NULL  -1 5 -2 5 <(sort file1) <(sort file2)
NULL b b1 a a2
NULL b b1 b b2
NULL b b1 c c2
NULL c c1 a a2
NULL c c1 b b2
NULL c c1 c c2

から「追加-e」とはどういう意味ですか?

ベストアンサー1

NULL と NULL は同じなので、3 番目の例の外部結合は内部結合と同じです。

NULL 値と NULL 以外の値は等しくないため、最初の 2 つの例の外部結合には内部結合が空であるため、内部結合のレコードは含まれません。

おすすめ記事