这是Table1
数据。
USER_ID | PRODUCT_ID | TIMESTAMPS
------------+------------------+-------------
1015826235 220003038067 *1004941621*
1015826235 300003861266 1005268799
1015826235 140002997245 1061569397
1015826235 *210002448035* 1005542471
如果将 数据与Table1
以下Table2
数据进行比较,则PRODUCT_ID
最后一行Table1
数据ITEM_ID
中的数据。Table2
TIMESTAMPS
Table1
CREATED_TIME
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 *200002448035* 2001-11-11 22:21:11
因此,在将 Table1 与 Table2 连接之后,我需要在上面的示例中显示这样的结果 - 以下输出中的任何一个对我来说都很好。
BUYER_ID | ITEM_ID | CREATED_TIME | PRODUCT_ID | TIMESTAMPS
------------+-------------------+-------------------------+-------------------+-----------------
1015826235 220003038067 *2001-11-03 19:40:21* 220003038067 *1004941621*
1015826235 *200002448035* 2001-11-11 22:21:11 *210002448035* 1005542471
或者
BUYER_ID | ITEM_ID | CREATED_TIME | USER_ID | PRODUCT_ID | TIMESTAMPS
-----------+-------------------+-------------------------+------------------+----------------------+------------------
1015826235 220003038067 *2001-11-03 19:40:21* 1015826235 220003038067 *1004941621*
1015826235 *200002448035* 2001-11-11 22:21:11 1015826235 *210002448035* 1005542471
任何帮助将不胜感激。
更新:-
select * from (select * 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 LEFT OUTER
JOIN table2 ON ( prod_and_ts.user_id = table2.buyer_id AND table2.item_id =
prod_and_ts.product_id AND prod_and_ts.timestamps = UNIX_TIMESTAMP
(table2.created_time) ) where table2.buyer_id IS NULL) set_a LEFT OUTER JOIN
table2 ON (set_a.user_id = table2.buyer_id AND ( set_a.product_id =
table2.item_id OR set_a.timestamps = UNIX_TIMESTAMP(table2.created_time) ));