두 개의 테이블이 있는데 그 중 하나의 테이블에 null 값을 결합하려고합니다. 첫 테이블null로 결합하기
샘플 데이터 (A_TEST) 내 두 번째 테이블 (B_TEST)의
+--+----+
|ID|NAME|
+--+----+
| |a |
|1 |b |
|1 |c |
+--+----+
샘플 데이터 :
+--+----+
|ID|NAME|
+--+----+
|1 |d |
|2 |e |
|3 |f |
+--+----+
난 a_test.id = 접합함으로써 결과를 달성하는 데 필요한 b_test.id 그리고 거기에 null 값이 있다면 그것들 역시 가져와야합니다. 그래서, 나는 다음과 같이 출력 얻었다
select a_test.id,a_test.name,b_test.id,b_test.name
from a_test,b_test
where (a_test.id = b_test.id
or a_test.id is null);
,
+--+----+--+----+
|ID|NAME|ID|NAME|
+--+----+--+----+
| |a |1 |d |
| |a |2 |e |
| |a |3 |f |
|1 |b |1 |d |
|1 |c |1 |d |
+--+----+--+----+
을 다음과 같이 쿼리를 작성하려하지만, ID 1 내 a_test에 있기 때문에 내 예상 결과는 내가 b_test에서 해당 행이 필요하다 출력을
+--+----+--+----+
|ID|NAME|ID|NAME|
+--+----+--+----+
| |a |1 |d |
|1 |b |1 |d |
|1 |c |1 |d |
+--+----+--+----+
도 봅니다. 외부 조인을 시도했지만 예상 출력이 나에게 줄지 않습니다.
왜 'b_test'의'1 d' 행이'a_test'의'null a' 행에 해당한다고 생각하십니까? –
DBMS는 사용자가 지정한 출력을 원하지 않는다는 것을 어떻게 이해해야합니까? 조건이 하나 더 필요합니다! – jarlh
@defaultlocale - id 1은 a_test 테이블에 있기 때문에 id가 1 인 b_test로부터 레코드를 가져 오기를 기대하고 있습니다. – arunb2w