select user_id, prod_and_ts.product_id as product_id, prod_and_ts.timestamps as
timestamps from testingtable2 LATERAL VIEW explode(purchased_item) exploded_table
as prod_and_ts;
Utilizzando la query precedente, ottengo l'output di seguito.SQL Query JOIN con tabella
USER_ID | PRODUCT_ID | TIMESTAMPS
------------+------------------+-------------
1015826235 220003038067 1004841621
1015826235 300003861266 1005268799
1015826235 140002997245 1061569397
1015826235 *200002448035* 1005542471
Se si confronta il sopra output from the query with the below Table2 data
, poi il product_id
nel last line of above output
non corrisponde con la ITEM_ID
nell'ultima riga nei dati sottostanti Table2
.
BUYER_ID | ITEM_ID | CREATED_TIME
-------------+-------------------+------------------------
1015826235 220003038067 2001-11-03 19:40:21
1015826235 300003861266 2001-11-08 18:19:59
1015826235 140002997245 2003-08-22 09:23:17
1015826235 *210002448035* 2001-11-11 22:21:11
Quindi la mia domanda è
Trova tutti coloro PRODUCT_ID(ITEM_ID)
e TIMESTAMPS(CREATED_TIME)
che non sono corrispondenti con i dati Table2
corrispondenti a particolari buyer_id o USER_ID.
Così ho bisogno di mostrare il risultato come questo per l'esempio- sopra
BUYER_ID | ITEM_ID | CREATED_TIME | USER_ID | PRODUCT_ID | TIMESTAMPS
-----------+-------------------+-------------------------+---------------+------------------+------------------
1015826235 *210002448035* 2001-11-11 22:21:11 1015826235 *200002448035* 1005542471
ho bisogno di unirsi alla query precedente che ho scritto con table2 per ottenere il risultato di cui sopra. Quindi ho bisogno di usare la mia query sopra nel processo di JOINING. Questo mi confonde molto. Ogni suggerimento sarà apprezzato.
UPDATE: -
ho scritto la domanda sotto, ma in qualche modo io non sono in grado di raggiungere l'uscita che volevo ottenere. Qualcuno mi può aiutare con questo?
SELECT table2.buyer_id, table2.item_id, table2.created_time from
(select user_id, prod_and_ts.product_id as product_id, prod_and_ts.timestamps as
timestamps from testingtable2 LATERAL VIEW explode(purchased_item) exploded_table
as prod_and_ts) prod_and_ts JOIN table2 where
prod_and_ts.user_id = table2.buyer_id
and (product_id <> table2.item_id or
timestamps <> UNIX_TIMESTAMP(table2.created_time));
Sto lavorando con Hive, e Hive supporta la sintassi di SQL così questa è la ragione per cui taggato questa domanda come 'sql' e' join'. Quindi JOIN funzionerà in HIVE. Ho solo bisogno di unirsi fondamentalmente. Quindi penso che la sintassi di Oracle andrà bene. – ferhan
Perché l'ultima riga non corrisponde? È a causa del timestamp che non corrisponde al tempo creato? – dash
Non sono sicuro che la query effettiva che ho scritto sia corretta o meno. Questo mi confonde molto. Quindi non sono sicuro che la query sopra sia corretta o meno. – ferhan