获取不同列值的最新条目

时间:2017-05-27 22:12:25

标签: mysql greatest-n-per-group

我有2个表格,我需要引用software_releasesplatforms。软件版本将包含平台ID,软件ID和版本号。

我想获取每个不同平台的最新版本号。

我目前拥有的查询如下:

SELECT   ReleaseID, 
         DateCreated, 
         SoftwareID, 
         platforms.PlatformID, 
         PlatformName, 
         VersionNumber 
FROM     software_releases, platforms 
WHERE    software_releases.PlatformID = platforms.PlatformID 
AND      software_releases.SoftwareID='3'  
ORDER BY VersionNumber DESC

返回:

5   27/05/2017 22:37    3   7   Windows 3.0.0.0
9   27/05/2017 22:56    3   7   Windows 2.6.0.0
7   27/05/2017 22:46    3   5   Android 2.5.1.1
1   27/05/2017 23:21    3   5   Android 2.5.0.0

列顺序如下:

  • ReleaseID
  • 发布日期
  • 软件ID
  • 平台ID
  • 版本ID

我正在寻找的是获取针对指定软件ID返回的每个平台的最新版本,因此,我只想返回以下内容:

5   27/05/2017 22:37    3   7   Windows 3.0.0.0
7   27/05/2017 22:46    3   5   Android 2.5.1.1

1 个答案:

答案 0 :(得分:0)

我从CBrowe评论中得到了这个答案,我不知道我之后被称为组明智最大查询。

我将查询更改为

         SELECT * FROM (SELECT DateCreated, SoftwareID, software_releases.PlatformID,
         VersionNumber, PlatformName FROM software_releases, platforms WHERE 
         SoftwareID='3' AND 
         platforms.PlatformID = software_releases.PlatformID ORDER BY VersionNumber DESC) 
         AS s GROUP BY PlatformID