簡體   English   中英

在mySQL中選擇具有不同ID的最新條目

[英]Select the most recent entries with different IDs in mySQL

所以,我有2張桌子。

表:量度

PersonID-值-時間戳記-TypeID

表:測量類型

TypeID-測量名稱

我想顯示來自2個不同TypeID的2個最新條目。 因此,我需要從帶有最新時間戳的TypeID 1中選擇一個值,並從帶有最新時間戳的TypeID 2中選擇一個值。 我還必須使用表之間的TypeID獲取測量的名稱。 我想將我的選擇限制為特定的PersonID。

我嘗試了多種方法來執行此操作,但我只是不知道該怎么做。

目前,我的代碼是:

SELECT 
  m.value, 
  m.timestamp, 
  m_t.measurement_name
FROM measurements m
INNER JOIN measurement_type m_t ON m.typeid = m_t.typeid
GROUP BY m.typeid
ORDER BY timestamp DESC

我的第一個問題,因此如果需要,我可以嘗試更好地解釋它:D

您可以使用子查詢,以獲得max的每種類型的時間戳,然后join結果回本身:

select m.typeid, m.value, m.timestamp, mt.measurement_name
from measurements m
    join (select max(timestamp) maxtimestamp, typeid
          from measurements 
          group by typeid) m2 on m.timestamp = m2.maxtimestamp
                             and m.typeid = m2.typeid
    join measurement_type mt on m.typeid = mt.typeid

您可以使用以下查詢來獲取給定類型ID的最新條目:

select m.personID, m.value, m.typeID, mt.measurement_name
from measurements m join measurements_type mt on m.typeID = mt.typeID
where m.typeID = ?
order by m.timestamp desc limit 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM