我正在努力应对以下情况:
我有一个包含插件作者的用户表。我有一个带插件的插件表(名称和ID)。我也有一个版本表。此版本表包含已发布的插件的所有版本,例如1.0,1.1等。现在版本记录还包含mcversions,这是该插件的引擎版本。
以下是我的查询:
SELECT
`plugins`.`name`,
users.username,
versions.version,
mcversions.version
FROM
users
INNER JOIN `plugins` ON `plugins`.author = users.id
INNER JOIN versions ON versions.id = `plugins`.id AND versions.time
INNER JOIN mcversions ON versions.mcversion = mcversions.id
现在有一个问题:我只想获得属于versions.time最高版本的版本和mcversion(它是时间戳)。 所以我想要一个插件列表,其中包含最新版本的名称,作者,最新版本和mcversion。
我有人可以帮助我,我会很开心!
〜巴斯
答案 0 :(得分:1)
SELECT
`plugins`.`name`,
users.username,
maxvers.version,
mcversions.version
FROM
users
INNER JOIN `plugins` ON `plugins`.author = users.id
INNER JOIN (SELECT version, MAX(time), id FROM versions) AS maxvers ON maxvers.id = `plugins`.id
INNER JOIN mcversions ON versions.mcversion = mcversions.id
我没有对此进行测试,但是如果您使用该子查询来查找最大行(正常情况下),则只从该子查询而不是整个版本表中绘制,以执行您想要的操作。