我面临一个非常奇怪的问题,我不能分组。如果我这样做,它将不会显示“最佳时间”。这有点奇怪。
这是可行的SQL字符串(但它显示相同的测验4次,它不应该!)
SELECT distinct a.quiz_id, a.time, b.end, b.images, b.prize_title
FROM entries a, quiz b
WHERE a.quiz_id = b.id AND a.member = '".$_SESSION['id']."'
ORDER BY a.time ASC
这显示不是最佳时间(最快时间=> ASC)
SELECT distinct a.quiz_id, a.time, b.end, b.images, b.prize_title
FROM entries a, quiz b
WHERE a.quiz_id = b.id AND a.member = '".$_SESSION['id']."'
GROUP BY a.quiz_id
ORDER BY a.time ASC
列“a.time”是毫秒,列是DOUBLE。
答案 0 :(得分:1)
尝试使用HAVING
代替WHERE
。
在同一查询中避免使用DISTINCT
和GROUP BY
(您只需要一个或另一个)。
答案 1 :(得分:0)
由于GROUP BY
在 ORDER BY
之前应用了,因此查询无法按预期运行。它只会在分组后对结果进行排序 - 而且只剩下一个结果。
尝试以下方法:
SELECT a.quiz_id, a.time, b.end, b.images, b.prize_title
FROM entries a
JOIN quiz b ON a.quiz_id = b.id
ORDER BY a.time ASC
LIMIT 1
答案 2 :(得分:0)
尝试这样的事情。
SELECT MIN(a.time), a.quiz_id, a.time, b.end, b.images,
b.prize_title FROM entries a, quiz b WHERE a.quiz_id = b.id AND
a.member = '".$_SESSION['id']."' GROUP BY a.quiz_id