0
두 테이블 표 1 및 표 행이 변경되었다 때문에이 행 다음 원하는 2하이브 내부는 잘못된 결과
hive> select * from table1 where dt=20171020;
OK
a 1 1 p 10 20171020
b 2 2 q 10 20171020
c 3 3 r 10 20171020
d 4 4 r 10 20171020
hive> select * from table2 where dt=20171020;
OK
a 1 1 p 10 20171020
b 2 2 t 10 20171020
c 3 3 r 10 20171020
hive> select * from table1 t1
> join table2 t2
> on t1.c1=t2.c1
> where
> t1.dt=20171020 and t2.dt=20171020 and
> t1.c2 <> t2.c2 or t1.c3 <> t2.c3 or t1.c4 <> t2.c4 or t1.c5 <> t2.c5;
Result:
a 1 1 p 20 20171016 a 1 1 p 10 20171015
a 1 1 p 20 20171016 a 1 1 p 10 20171020
b 2 2 q 20 20171016 b 2 2 t 10 20171015
b 2 2 q 20 20171016 b 2 2 t 10 20171020
c 3 3 r 20 20171016 c 3 3 r 10 20171015
c 3 3 r 20 20171016 c 3 3 r 10 20171020
b 2 2 q 10 20171020 b 2 2 t 10 20171015
b 2 2 q 10 20171020 b 2 2 t 10 20171020
a 19 19 p 20 20171019 a 1 1 p 10 20171015
a 19 19 p 20 20171019 a 1 1 p 10 20171020
에 합류?
b 2 2 q 10 20171020
논리에 어떤 오류가 있습니까? – rajs
실용적인 경우 liket1.dt = 20171019 및 t2.dt = 20171020이라는 다른 날짜를 사용해야합니다. 조건에 dt를 추가하는 것은 무엇입니까? – rajs
가입시 dt를 추가하지 않으면 모든 날짜에 대해 OR 조건이 적용됩니다. 또한 OR에 대한 괄호를 확인하십시오. 다양한 날짜의 경우 날짜를 제외 할 수 있지만 구문 분석에서 OR을 사용할 수 있습니다. –