파일이 두 개 있어요
$ 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
답변1
NULL과 NULL은 동일하므로 세 번째 예의 외부 조인은 내부 조인과 동일합니다.
NULL 값과 NULL이 아닌 값은 동일하지 않으므로 처음 두 예의 외부 조인에는 내부 조인이 비어 있으므로 내부 조인의 레코드가 포함되지 않습니다.