0

这是场景....

我有一个 MySQL 表(称为固定装置),其中包含以下内容....

在此处输入图像描述

您可以看到 A 队在日期 2012-06-01 的夹具已更新,版本 4 是最后一个条目,其开球时间为 12:00。

我需要一些 SQL 来选择日期 2012-06-01 的所有记录,但只选择最新版本,所以它应该看起来像....

在此处输入图像描述

这是我尝试过的,它看起来很完美,但它返回了错误的 ID 和时间(这已经改变了),见下文......

 select id, max(version), team, date, time, oppo from fixtures where date = "2012-06-01" group by team

在此处输入图像描述

4

3 回答 3

1
select id,version, team, date, time, oppo 
from fixtures A where id in
(
    select max(id)from fixtures 
    where date = "2012-06-01" 
    group by team
)

假设:id是主键

于 2012-10-05T20:13:32.573 回答
0

试试这个:

select f.id, a.version, a.team, f.date, f.time, f.oppo from fixtures f inner join
(select max(version) version, team from fixtures where date = "2012-06-01" group by team) a
 on f.version = a.version and f.team = a.team
于 2012-10-05T20:11:30.350 回答
0
SELECT id
    ,version
    ,team
    ,DATE
    ,TIME
    ,oppo
FROM fixtures
WHERE DATE = "2012-06-01"
    AND id = (
        SELECT max(f2.id)
        FROM fixtures f2
        WHERE f2.DATE = DATE
            AND f2.team = team
        )
于 2012-10-05T20:12:17.097 回答