2011-11-22 25 views
1

我想爲每個有至少1條評論的企業選擇最新評論。在一個單獨的查詢中,我試圖爲每個有至少1條評論的企業選擇最早的評論。爲什麼在這種情況下使用Min或Max會產生不同數量的結果?

下面的查詢與我在第二次使用Max時使用Max相反。然而,他們產生了不同數量的結果(MAX的MIN & 673有1180個結果)。很困惑???誰能幫

SELECT comment.bis_id, comment.comment, comment.date 
FROM comment 
GROUP BY comment.bis_id 
HAVING comment.date = MIN(comment.date) 


SELECT comment.bis_id, comment.comment, comment.date 
FROM comment 
GROUP BY comment.bis_id 
HAVING comment.date = MAX(comment.date) 
+2

很好,因爲沒有相同的條件下(您having子句),所以你有不同的結果... –

+2

' MIN(comment.date)!= MAX(comment.date)'也許? – Mat

+0

重新提出的問題的清晰度 – Neil

回答

1

在這種情況下,你應該使用這些查詢 -

SELECT c1.* FROM comment c1 
    JOIN (SELECT bis_id, MIN(date) date FROM comment GROUP BY bis_id) c2 
ON c1.bis_id = c2.bis_id AND c1.date = c2.date; 

SELECT c1.* FROM comment c1 
    JOIN (SELECT bis_id, MAX(date) date FROM comment GROUP BY bis_id) c2 
ON c1.bis_id = c2.bis_id AND c1.date = c2.date; 
+0

謝謝。你看到過去我嚴重製定的問題:-) – Neil

相關問題