두 테이블 TAB_A 및 TAB_B가 있습니다. TAB_A는 마스터 테이블이고 TAB_B는 하위/트랜잭션 테이블입니다. TAB_A에는 COL_A (기본 키)가 있고 TAB_B에는 COL_B (기본 키)와 COL_A가 있습니다.DB2 쿼리 출력 - 다른 동작
비즈니스 이유에 따라 COL_A 열의 TAB_A와 TAB_B 사이에 외래 키가 정의되어 있지 않습니다.
TAB_A의 COL_A에서 일치하는 값이없는 COL_A의 값이 1, 2, 3 및 4 인 TAB_B의 레코드가 4 개 있습니다. 나는 다음과 같은 SELECT 쿼리를 실행하면, 나는 내가 SELECT
쿼리에서 A.COL_A를 참조 시작하면 네 개의 레코드가
SELECT B.COL_B,
B.COL_A
FROM TAB_A A,
TAB_B B
WHERE A.COL_A = B.COL_A
AND B.COL_A IN (1, 2, 3, 4)
그러나, 레코드가 반환되지 않습니다 얻을
(그들은 실수에 의해 만들어진 고아 기록이다) .
SELECT B.COL_B,
B.COL_A,
A.COL_A
FROM TAB_A A,
TAB_B B
WHERE A.COL_A = B.COL_A
AND B.COL_A IN (1, 2, 3, 4)
누군가 이상한 행동을 설명해 주실 수 있습니까? AIX
에서DB2 버전 9.5을
첫 번째 쿼리가 정확히 설명 된 것과 실제로 4 개의 레코드를 반환하는지 확인하십시오.COL_A의 값 1,2,3,4가 TAB_B에 없으면 아무 것도 반환하지 않습니다. –
분명히 두 번째 검색어에 오타가 있습니다. A.COL_A = B.COL_C 또는 다른 일부 오타가 있다고 할 수 있습니다. – Hogan