SQL-Abfrage JOIN mit Tabelle

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;

Mit der obigen Abfrage erhalte ich die folgende Ausgabe.

USER_ID     |    PRODUCT_ID    |   TIMESTAMPS
------------+------------------+-------------
1015826235       220003038067      1004841621
1015826235       300003861266      1005268799
1015826235       140002997245      1061569397
1015826235      *200002448035*     1005542471

Wenn Sie die oben genannten vergleichenoutput from the query with the below Table2 data, dann ist dieproduct_id in demlast line of above output stimmt nicht mit dem übereinITEM_ID in der letzten Zeile untenTable2 Daten.

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

Also meine Frage ist

Finden Sie alle diesePRODUCT_ID(ITEM_ID) undTIMESTAMPS(CREATED_TIME) das passt nicht zuTable2 Daten, die einer bestimmten BUYER_ID oder USER_ID entsprechen.

Also muss ich das Ergebnis für das obige Beispiel so zeigen -

BUYER_ID   |     ITEM_ID       |      CREATED_TIME       |     USER_ID   |       PRODUCT_ID     |   TIMESTAMPS
-----------+-------------------+-------------------------+---------------+------------------+------------------
1015826235     *210002448035*       2001-11-11 22:21:11     1015826235      *200002448035*     1005542471

Ich muss mich der obigen Abfrage anschließen, die ich mit table2 geschrieben habe, um das obige Ergebnis zu erhalten. Daher muss ich meine obige Abfrage im JOINING-Prozess verwenden. Das verwirrt mich sehr. Jeder Vorschlag wird geschätzt.

AKTUALISIEREN:-

Ich habe die folgende Abfrage geschrieben, aber irgendwie bin ich nicht in der Lage, die Ausgabe zu erreichen, die ich erreichen wollte. Kann mir jemand dabei helfen?

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));

Antworten auf die Frage(2)

Ihre Antwort auf die Frage