此類問題每隔一段時間問一次。提供的查詢有效,但會影響性能。根據日期在MySQL中獲取最新行(按另一列分組)
我已經試過JOIN
方法:
SELECT *
FROM nbk_tabl
INNER JOIN (
SELECT ITEM_NO, MAX(REF_DATE) as LDATE
FROM nbk_tabl
GROUP BY ITEM_NO) nbk2
ON nbk_tabl.REF_DATE = nbk2.LDATE
AND nbk_tabl.ITEM_NO = nbk2.ITEM_NO
而且一個元組(方法要慢):
SELECT *
FROM nbk_tabl
WHERE REF_DATE IN (
SELECT MAX(REF_DATE)
FROM nbk_tabl
GROUP BY ITEM_NO
)
是否有這樣做的任何其他性能友好的方式?
編輯:爲了清楚起見,我將它應用到一個有數千行的表格中。
它會返回一個同樣的'ITEM_NO'多行。這是我首先要避免的。 – Ruel 2012-08-16 01:41:39
@Ruel。 。 。我發現你的問題含糊不清。標題暗示了一件事,但另一個查詢示例。我終於明白了這一點。 – 2012-08-16 01:46:18
對不起。修正了我的標題。 – Ruel 2012-08-16 01:48:29