Php 你不分组吗?

Php 你不分组吗?,php,mysql,Php,Mysql,我面临着一个非常棘手的问题,我无法分组。如果我这样做了,它不会显示出最好的时间。有点怪 下面是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

我面临着一个非常棘手的问题,我无法分组。如果我这样做了,它不会显示出最好的时间。有点怪

下面是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为毫秒,列为双精度。

尝试使用have而不是WHERE


避免在同一查询中使用DISTINCT和GROUP BY,因为在ORDER BY之前应用GROUP 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

试试这样的

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 

显示您的表结构,它听起来不正确,避免使用可能发生冲突的时间,将其更改为其他名称..我在您的示例查询中没有看到ORDER BY。当您认为ORDER BY无法正常工作时,是否可以显示示例表数据、示例查询和示例查询结果。最好有一列时间,另一列为micro/mill秒,先按时间排序,然后按micro排序。我不熟悉这种情况。你能帮我吗?谢谢你的代码看起来是正确的,但是你的描述并不能说明全部情况。连接生成一个交集,这可能会消除GROUP BY或DISTINCT将消除的重复。不工作。向他们展示一切,而不仅仅是最好的分数。是否尝试从条目中选择a.quick\u id、a.time、b.end、b.images、b.prize\u title a.quick\u id=b.id和a.member=1顺序加入a.quick\u id=b.id和a.member=1。抱歉,我没有意识到这种情况。只需将限制1添加到查询中。在那个例子中,编辑我的答案得不到最好的分数。从条目a中选择MINa.time、a.kitch\u id、a.time、b.end、b.images、b.prize\u title,其中a.kitch\u id=b.id和a.member='.$\u SESSION['id'.'按a.kitch\u id分组a.time按a.time排序如果按最佳分数排序,您指的是最低时间-它应该-您不应该再使用ORDER BY子句了。它完成了任务,谢谢大家。请确认此项选择MINa.time作为正确时间,a.Quike_id,a.time,b.end,b.images,b.prize_标题来自条目a,其中a.Quike_id=b.id,a.member=1组a.Quike_I欢迎您…快乐编码。您想让我确认什么?另外,避免使用诸如类、时间、日期、开始、结束或任何其他可以被视为关键字的字段名也是一个非常好的主意。