Select the latest MySQL Data but unique resort

后端 未结 5 1436
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-21 16:41

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

相关标签:
5条回答
  • 2021-01-21 16:45

    I think this should do it:

    SELECT * FROM advertisements GROUP BY resort ORDER BY dateAdded DESC
    
    0 讨论(0)
  • 2021-01-21 16:46

    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
    
    0 讨论(0)
  • 2021-01-21 16:57
    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.

    0 讨论(0)
  • 2021-01-21 17:00

    Use GROUP BY function

    SELECT MAX(dateAdded), resort, linkToUrl FROM `your_table` GROUP BY resort
    
    0 讨论(0)
  • 2021-01-21 17:05

    Have a look at this article for selecting the "maximum" (say, most recent date) item from a group of items.

    0 讨论(0)
提交回复
热议问题