0
2つのテーブルのテーブル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にはparrntheses –