2016-05-25 26 views
1

下面是我的表,獲取從表中最新的兩個不同的位置

enter image description here

SELECT DISTINCT(availability_location)的位置,距離table_name的WHERE user_ID的= '8' ORDER BY availability_date DESC LIMIT 2

我得到以下結果

enter image description here

我想下面的結果:

2016年5月27日浦

2016年5月20日伯班克

即獨特availability_location以及最新的兩個條目。

回答

3

你必須使用GROUP BY這個:

SELECT t.availability_location 
FROM table_name t 
WHERE user_id = '8' 
GROUP BY t.availability_location 
ORDER BY max(s.availability_date) DESC LIMIT 2 

輸出:

availability_location 
--------------------- 
pune 
Burbank 

編輯:

SELECT availability_location as location, 
     MAX(availability_date) AS max_date 
FROM table_name 
WHERE user_id = '8' 
GROUP BY location 
ORDER BY max_date DESC LIMIT 2 
+0

沃金罰款我猜。第一條記錄是以「Pune」作爲位置的「2016-05-27」但是在「2016-05-27」的DB中,日期位置是「pune」 – AkshayP

+0

@AP。恐怕我不明白你的觀點。 –

+0

看起來如此 - 「浦那」和「浦那」。我期待「pune」,因爲它的日期是「2016-05-27」,但得到「Pune」 – AkshayP

2

您可以通過最大日期使用GROUP BY和秩序下一次,你應該提到你想要的它是區分大小寫的。你可以嘗試這樣做:

SELECT t.availability_location 
FROM table_name t 
INNER JOIN(SELECT s.availability_location , max(s.availability_date) as max_d 
      FROM table_name s 
      WHERE s.user_id = '8' 
      GROUP BY s.availability_location) t2 
    ON(t2.availability_location = t.availability_location AND 
    t2.max_d = t.availability_date) 
ORDER BY t.availability_date DESC LIMIT 2 
+0

此查詢爲Pune和Burbank提供。我以「Pune」作爲位置獲得第一條記錄爲「2016-05-27」,但在「2016-05-27」的數據庫中,日期位置爲「pune」 – AkshayP

+0

@AP。現在試試吧,不確定它是否可能將它們分開顯示,因爲它們可能在相同的排序規則中 – sagi

+0

您的第一個答案適用於我。 – AkshayP

相關問題