티스토리 뷰
테이블 T1과 테이블 T2 를 서브쿼리로 조인시 아래와 같은 상황에서 버그로 인해서 데이터가 추출되지 않음.
T1.NAME 컬럼은 CHAR(10)
T2.NAME 컬럼은 VARCHAR(15)
SELECT *
FROM T1
WHERE T1.NAME NOT IN (SELECT NAME
FROM T2
)
;
-- 데이터가 나와야 하는 조건에서도 무조건 NOT FOUND 즉 0 ROWS
SELECT *
FROM T1
WHERE T1.NAME NOT IN (SELECT NAME || ''
FROM T2
)
;
위와 같이 || ''를 추가하면 제대로 나옴. 형변환과 관련되는 것 같은데 어째든 전체 결과 합. 즉 IN, NOT IN이 맞지 않음
버그가 아니라면 문맥상 NOT IN임으로 T1전체 컬럼수가 나와야 하는게 아닐런지..
테스트 결과 IN 에서는 잘 나옴.
반대로 아래와 같이 메인 집합을 T2로 하고 서브쿼리 집합을 T1으로 하면 잘 나옴.
SELECT *
FROM T2
WHERE T1.NAME NOT IN (SELECT NAME
FROM T1
)
;
결론적으로 12.7 버전에서는 조인되는 메인집합의 컬럼 타입이 CHAR 이고 하위집합(서브쿼리)의 컬럼이 VARCHAR 일
경우 NOT IN으로 조인할 경우. 데이터가 추출되지 않음.
- Total
- Today
- Yesterday
- 오미크론
- 매직 트랙패드2
- 배당급
- 브리다 정수기
- 증권정보포털
- node.js
- VARIDESK
- 로니카 BCS
- JMW 헤어드라이기기
- 고체 향수
- 파나소닉 비데 DL-EH10KWS
- 카카오 에드
- 르세라핌
- 톡토기
- Sybase IQ
- GKRS
- weka
- 유가바이트디비
- 홈 오피스
- 루미큐브 종류
- 남설 팔찌
- 코라나 19
- 화분벌레
- Pixel Pals
- 솔리드 쿨론
- 별잉 빛나는 밤
- 별이 빚나는 밤
- 빈센트 반 고흐
- yugabyteDB
- Life Chair
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |