I have a 1 table database that has a list of advertisements. I am trying to grab the LATEST advertisement for EACH resort. I know it should pr
I think this should do it:
SELECT * FROM advertisements GROUP BY resort ORDER BY dateAdded DESC
Assuming the Id column is unique:
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
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
First group the rows by resort to find the max of dateAdded, then query (join) the rows that have the same dateAdded with the max.
One problem is, if the same resort b is added in the same time, twice or more, it will take only the first row. But I think is slightly possible.
Use GROUP BY function
SELECT MAX(dateAdded), resort, linkToUrl FROM `your_table` GROUP BY resort
Have a look at this article for selecting the "maximum" (say, most recent date) item from a group of items.