php - Order by before Group by 子查询

标签 php mysql

我知道有很多关于子查询的问题。我已经阅读了很多,并尝试使用满足我需求的答案,但由于某种原因我无法让它发挥作用。

我的表包含练习结果列表。 “bruger_id”是用户 ID “prog_oevelse_id”是练习的 ID “kg_km”是用户举起的公斤数或距离 “reps_tid”是用户举起多少公斤的重量或他使用了多少分钟。

这是我的 table :

enter image description here

我需要它来列出他表现最好但每次练习只有一个的用户结果。我试过:

$results = $pdo->query("
          SELECT * FROM (
            SELECT * FROM myw_resultat 

            ORDER BY kg_km DESC
          ) t
        WHERE bruger_id = '$user_id'
        GROUP BY prog_oevelse_id
        "); 

但是当我回显上面的查询时:

$SL = 0;
        foreach($results as $key => $row) { 

        echo $row['prog_oevelse_id'];
        echo " - ";
        echo $row['kg_km'];
        echo " / ";
        echo $row['reps_tid'];
        echo "<br>";
        }

它给了我这个结果:

enter image description here

我的预期输出是:

enter image description here

有人可以帮我解决这个问题吗?

最佳答案

 $pdo->query("
        SELECT R.prog_oevelse_id, R.kg_km, R.reps_tid
        FROM myw_resultat R
        JOIN ( SELECT prog_oevelse_id, MAX(kg_km) as m_kg_km
               FROM myw_resultat 
               WHERE bruger_id = '$user_id'
               GROUP BY prog_oevelse_id ) as M
          ON R.prog_oevelse_id = M.prog_oevelse_id
         AND R.kg_km = M.m_kg_km
        WHERE R.bruger_id = '$user_id'

关于php - Order by before Group by 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096412/

相关文章:

PHP - 提高性能以避免某些 if 子句的想法

php - 在php中用_替换空格

mysql - JOIN SQL 查询结果为一个

mysql - CakePHP 将数据快照保存为 XML/JSON

mysql - 在 Duplicate Key 上仅更新 Null 或空值

php - 如何在 php c-extension 中捕获警告/ fatal error ?

php - 提供的参数不是有效的MySQL结果资源错误

php - ajax php总是返回null

python - Scrapy mysql管道错误

sql - 我怎样才能采用两个单独的 sql 查询的 UNION 并仅获取 DISTINCT 值