选择最新的MySQL数据但独特的度假胜地

时间:2011-10-17 23:00:27

标签: php mysql sql resultset

我有一个包含广告列表的表数据库。 我正在尝试为每个度假胜地抓取最新广告。 我知道它应该是一个表数据库,但我将如何去做。

enter image description here

5 个答案:

答案 0 :(得分:3)

假设Id列是唯一的:

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

答案 1 :(得分: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

首先按行分组行以找到dateAdded的最大值,然后查询(加入)具有相同dateAdded和max的行。
一个问题是,如果在同一时间,两次或更多次添加相同的度假胜地 b ,则仅需要第一行。但我觉得有点可能。

答案 2 :(得分:1)

请查看this article,以便从一组项目中选择“最大”(例如,最近日期)项目。

答案 3 :(得分:1)

使用GROUP BY功能

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

答案 4 :(得分:1)

我认为应该这样做:

SELECT * FROM advertisements GROUP BY resort ORDER BY dateAdded DESC