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;
Bằng cách sử dụng truy vấn trên, tôi nhận được kết quả dưới đây.Truy vấn SQL JOIN với Bảng
USER_ID | PRODUCT_ID | TIMESTAMPS
------------+------------------+-------------
1015826235 220003038067 1004841621
1015826235 300003861266 1005268799
1015826235 140002997245 1061569397
1015826235 *200002448035* 1005542471
Nếu bạn so sánh trên output from the query with the below Table2 data
thì product_id
trong last line of above output
không phù hợp với ITEM_ID
trong dòng cuối cùng trong dưới Table2
dữ liệu.
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
Vì vậy, câu hỏi của tôi là
Tìm tất cả những PRODUCT_ID(ITEM_ID)
và TIMESTAMPS(CREATED_TIME)
mà không phù hợp với Table2
dữ liệu tương ứng với BUYER_ID cụ thể hoặc USER_ID.
Vì vậy, tôi cần phải hiển thị kết quả như thế này cho các example- trên
BUYER_ID | ITEM_ID | CREATED_TIME | USER_ID | PRODUCT_ID | TIMESTAMPS
-----------+-------------------+-------------------------+---------------+------------------+------------------
1015826235 *210002448035* 2001-11-11 22:21:11 1015826235 *200002448035* 1005542471
tôi cần phải JOIN truy vấn trên mà tôi đã viết với table2 để có được những kết quả trên. Vì vậy, tôi cần phải sử dụng truy vấn trên của tôi trong quá trình JOINING. Điều đó gây nhầm lẫn cho tôi rất nhiều. Bất kỳ đề xuất nào cũng sẽ được đánh giá cao.
UPDATE: -
tôi đã viết các truy vấn dưới đây, nhưng bằng cách nào đó tôi không thể đạt được kết quả mà tôi muốn đạt được. Bất cứ ai có thể giúp tôi với điều này?
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));
Tôi đang làm việc với Hive và Hive hỗ trợ SQL như cú pháp, đó là lý do tôi gắn thẻ câu hỏi này là 'sql' và' join'. Vì vậy, JOIN sẽ làm việc trong HIVE. Tôi chỉ cần JOIN cơ bản. Vì vậy, tôi nghĩ rằng cú pháp Oracle sẽ được sử dụng tốt. – ferhan
Tại sao dòng cuối cùng không khớp? Có phải vì dấu thời gian không khớp với thời gian đã tạo không? – dash
Tôi không chắc liệu truy vấn thực tế mà tôi đã viết có đúng hay không. Điều đó gây nhầm lẫn cho tôi rất nhiều. Vì vậy, không chắc chắn liệu các truy vấn trên là đúng hay không. – ferhan