하나 또는 두 입력 파일 모두에 대해 존재하지 않는 조인 필드를 지정하면 어떻게 됩니까?

하나 또는 두 입력 파일 모두에 대해 존재하지 않는 조인 필드를 지정하면 어떻게 됩니까?

파일이 두 개 있어요

$ 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은 동일하므로 세 번째 예의 외부 조인은 내부 조인과 동일합니다.

NULL 값과 NULL이 아닌 값은 동일하지 않으므로 처음 두 예의 외부 조인에는 내부 조인이 비어 있으므로 내부 조인의 레코드가 포함되지 않습니다.

관련 정보