問題:
給定一個包含 pidid、pid、time列的表格、cost和rid,任務是檢索每個唯一rid的最新行的pid,考慮到pid是自增主鍵。
原始查詢:
以下查詢擷取最大時間戳與對應的 Rid值,但沒有正確返回最新的pid:
SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid
解決方案:
為了有效地獲取每次rid的最新pid,需要結合多種技術:
辨識最大時間戳與對應的rid值:
SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
依照最大時間戳記結果連接原始表:
SELECT t.pid, t.cost, t.timestamp, t.rid FROM theTable AS t JOIN (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt ON t.rid = maxt.rid AND t.timestamp = maxt.maxt
這個修改後的查詢有效地檢索了 pid、成本、時間戳,並刪除了原始中每個唯一刪除的最新行表。
以上是如何使用 MySQL 的'MAX()”和'GROUP BY”高效檢索每個唯一'rid”的最新'pid”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!