두 테이블을 결합하려고합니다. 간단하게하기 위해 테이블에는 공통된 ID와 고유 한 숫자 값이 각각 두 개의 열이 있습니다. 그러나 모든 ID가 두 테이블 모두에있는 것은 아니므로 FULL OUTER JOIN을 사용합니다.전체 외부 조인을 위해 일치하는 열에서 공백 값을 가져 오는 이유는 무엇입니까?
Table1 Table2
+------+--------+ +------+--------+
| ID | Value1 | | ID | Value2 |
+------+--------+ +------+--------+
| ABC | 125 | | ABC | 317 |
| DEF | 13 | | HIJ | 95 |
+------+--------+ +------+--------+
그래서 나 한테 모든 기록을주는 OUTER을 것 JOIN 기대했다 :
+------+--------+--------+
| ID | Value1 | Value2 |
+------+--------+--------+
| ABC | 125 | 317 |
| DEF | 13 | |
| HIJ | | 95 |
+------+--------+--------+
을하지만 제가 대신보고 있어요 것은 '아무튼 경우 ID가 병합 된 결과에 복사되지이다 표 1에 존재하지 않습니다 :
+------+--------+--------+
| ID | Value1 | Value2 |
+------+--------+--------+
| ABC | 125 | 317 |
| DEF | 13 | |
| | | 95 |
+------+--------+--------+
왜 내 ID가 비어 있습니까? 내 쿼리는 다음과 같습니다.
SELECT ID, Value1, Value2
FROM Table1
FULL OUTER JOIN Table2 ON Table1.ID == Table2.ID;
SQL Server와 가장 가까운 회사 내부 언어를 사용하고 있습니다. 몇 가지 차이점이 있지만 처음에는 조인 구문에 대한 내 이해를 먼저 확인했습니다.
키와 외부 키 열은 마술처럼 SQL에서 결합되지 않습니다. 명시 적으로 'COALESCE'를 사용하거나 소비 프로그램을 수정하여 두 개의 키 열을 허용해야합니다. – Dai