Mysql不同的帐户\u id和订购人

Mysql不同的帐户\u id和订购人,mysql,sql,join,greatest-n-per-group,Mysql,Sql,Join,Greatest N Per Group,我想为每个帐户id选择datetime DESC订购的最后一个datetime记录版本 SELECT * FROM `record_versions` WHERE record_id='26' GROUP BY `account_id` ORDER BY datetime DESC 它只返回帐户id的一条记录,但它不是最后一条记录。您可以使用自联接来获得所需的结果,内部查询将获得每个帐户id的datetime列的最大值,并将外部查询中的行与最新的datetime值联接 SELECT

我想为每个帐户id选择datetime DESC订购的最后一个datetime记录版本

SELECT * 
FROM `record_versions` 
WHERE record_id='26'
GROUP BY `account_id`
ORDER BY datetime DESC

它只返回帐户id的一条记录,但它不是最后一条记录。您可以使用自联接来获得所需的结果,内部查询将获得每个帐户id的datetime列的最大值,并将外部查询中的行与最新的datetime值联接

SELECT 
  r.* 
FROM
  `record_versions` r 
  JOIN 
    (SELECT 
      MAX(`datetime`) `datetime`,
      account_id 
    FROM
      record_versions 
    GROUP BY account_id) t 
    ON (
      r.account_id = t.account_id 
      AND r.datetime = t.datetime
    ) 
WHERE r.record_id = '26'