2011-10-17 7 views

答えて

2
select t.* 
from YourTable t 
join 
    (select resort, max(dateAdded) dateAdded 
    from YourTable 
    group by resort) m on t.dateAdded = m.dateAdded and t.resort = m.resort 
order by t.resort 

最初のグループの行によって、ママを見つけるためのリゾートxをdateAddedとし、dateAddedがmaxである行を照会(結合)します。
一つの問題は、同じリゾートBが同じ時間に追加された場合、2回以上、それは最初の行だけを取るだろう、です。しかし、私は少し考えられます。

1

項目のグループから「最大」(たとえば、最新の日付)の項目を選択するためのthis articleを見てください。

1

使用GROUP BY機能Id列を想定し

SELECT MAX(dateAdded), resort, linkToUrl FROM `your_table` GROUP BY resort 
3

がユニークである:

SELECT T3.* 
FROM yourtable AS T3 
JOIN 
(
    SELECT T2.resort, T2.date_added, MAX(T2.id) AS id 
    FROM yourtable AS T2 
    JOIN 
    (
     SELECT resort, MAX(date_added) AS date_added 
     FROM yourtable 
     GROUP BY resort 
    ) AS T1 
    ON T1.resort = T2.resort AND T1.date_added = T2.date_added 
    GROUP BY T2.resort, T2.date_added 
) AS T4 
ON T4.id = T3.id 
+0

Downvoter:あなたは間違っているだけではなくdownvotingを教えていただけますか?私はこのエラーを訂正してうれしいです。 –

+0

私も興味があります。同じ時間に追加されたエントリを見ても、あなたの答えは正しいものになります。 –

1

私は、これはそれを行うべきだと思う:

SELECT * FROM advertisements GROUP BY resort ORDER BY dateAdded DESC 
関連する問題