選擇最近的不同記錄
您的查詢旨在從表中檢索 otheridentifier 列中的值不同的三個最新記錄。然而,目前使用 GROUP BY 和 LIMIT 的方法會產生意想不到的結果。
讓我們檢查一下這個問題。 GROUP BY 操作將具有相同 otheridentifier 的行組合在一起。由於排序發生在分組之後,因此不一定會選擇每個組的最新記錄。
使用子查詢的解決方案
要解決此問題,可以使用子查詢來識別每個不同的其他識別碼的最新記錄。然後在主查詢中使用此資訊來選擇所需的記錄。
以下查詢實現此目的:
SELECT * FROM `table` WHERE `id` = ( SELECT `id` FROM `table` as `alt` WHERE `alt`.`otheridentifier` = `table`.`otheridentifier` ORDER BY `time` DESC LIMIT 1 ) ORDER BY `time` DESC LIMIT 3
解釋:
使用此方法,查詢將傳回預期的結果:ids 5、4和2,代表最近的三個具有不同 otheridentifier 值的記錄。
以上是如何從表格中選擇最近的 3 筆不同記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!