Jadi saya punya DF seperti ini: ID buah 001 anggur 002 apel 002 mangos 003 pisang 004 jeruk 004 anggur dan saya ingin bergabung dengan yang berikut ini: id ...

1
John Thomas 5 April 2021, 21:19

2 jawaban

Jawaban Terbaik

Agregat di tabel ke-2 untuk mendapatkan store_time terbaru untuk setiap ID dan kemudian bergabung ke tabel 1:

SELECT t1.ID, t1.fruit, t2.timestamp
FROM table1 t1 
LEFT JOIN (
  SELECT ID, MAX(store_time) timestamp 
  FROM table2
  GROUP BY ID
) t2 ON t2.ID = t1.ID

Saya menggunakan LEFT bergabung dalam kasus table2 tidak mengandung semua ID s dari table1.
Jika ini tidak terjadi maka Anda dapat mengubahnya ke INNER bergabung.

1
forpas 5 April 2021, 18:27

Anda memerlukan subquery untuk max tme cap

    select a.id, a.fruit, b.max_time
    from my_table_fruit a
    inner  join (
        select id, max(store_time) max_time 
        from my_table_time 

    ) b on b.id = a.id 
0
scaisEdge 5 April 2021, 18:27