主机将不允许Mysql子查询,这可以以任何其他方式完成吗?


Host will not allow Mysql Sub Queries, Can this be done any other way?

SELECT * FROM(SELECT * FROM `finishes` Order by `finish`, `fdate` DESC) AS `output`
GROUP BY `finish`

以上在我的本地主机机器上完美运行,但是在将其上传到我的 Servage 主机(命名和羞辱!(时,它会失败并抛出语法错误,当我问 Servage 为什么会这样以及是否可以启用对子查询的支持时,他们断然拒绝说他们的服务器不支持它!(像往常一样糟糕的客户服务,这是我对他们的期望。

无论如何..有没有办法在没有子查询的情况下重写上述内容,我只想获取表中的最新条目,按 finish 分组,但它需要显示属于该行的其他数据。我尝试了max(fdate(,尽管这拉了正确的日期,但它仍然显示数据库中第一个条目而不是最后一个条目的其他列中的数据。

在这个问题上挠头。

保罗

它现在可能非常适合您,但可能并不总是完美运行。(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`