SELECT * FROM(SELECT * FROM `finishes` Order by `finish`, `fdate` DESC) AS `output`
GROUP BY `finish`
以上在我的localhost机器上工作得很好,但是在将它上传到我的Servage主机(命名和羞辱!)时,它会失败并抛出语法错误,当我问Servage为什么会这样,以及对子查询的支持是否可以启用后,他们断然拒绝说服务器不支持! (像往常一样糟糕的客户服务,我们期待他们。)
无论如何..有没有办法在没有子查询的情况下重写上面的内容,我想要做的就是获取表中的最新条目,按完成分组,但它需要显示属于该行的其他数据。我尝试了max(fdate),虽然这拉了正确的日期,它仍然显示数据库中第一个条目的其他列中的数据,而不是最后一个。
抓住我的头。
保
答案 0 :(得分:0)
它现在可能对您有效,但它可能并不总是完美无缺。 (MySQL允许您使用这样的GROUP BY子句,但不保证将返回其他字段的值)
试试这个
SELECT `finishes`.*
FROM `finishes`
JOIN (SELECT `finish`, MAX(fdate) as `latest`
FROM `finishes`
GROUP BY `finish`) AS T1
ON T1.`finish` = `finishes`.`finish`
AND T1.`latest` = `finishes`.`fdate`