我有这个:
SELECT FirstName
FROM MAIN_TABLE_LEVEL100
WHERE FirstName IN
(
SELECT DISTINCT FirstName
FROM MAIN_TABLE_LEVEL100
)
ORDER BY `level` DESC, `time` DESC LIMIT 0,10
我试图按级别和时间排序前十名不同的名字,但如果有人可以帮助我,那就不行了,谢谢。
答案 0 :(得分:0)
你的where子句什么都不做,你只是重复了上面的选择。只要级别和时间在'MAIN_TABLE_LEVEL100'中,您甚至不需要where子句。这应该有效:
SELECT DISTINCT FirstName, level, time
FROM MAIN_TABLE_LEVEL100
ORDER BY level DESC, time DESC LIMIT 10
答案 1 :(得分:0)
由于时间原因,您可以拥有多条线路。尝试先将数据汇总在一起。 我不熟悉mySql,但是使用通用的SQL语法会是这样的:
SELECT b.FirstName
FROM (SELECT a.FirstName, a.Level, MAX(a.Time) AS tm FROM MAIN_TABLE_LEVEL100 as a GROUP BY a.FirstName, a.Level) AS b
ORDER By b.Level, b.tm
答案 2 :(得分:0)
谢谢大家,我终于找到了正确答案!:
SELECT o.FirstName, o.Level, o.Time, o.City
FROM `MAIN_TABLE_LEVEL100` o # 'o' from 'bigger points'
LEFT JOIN `MAIN_TABLE_LEVEL100` b # 'b' from 'bigger after o'
ON o.FirstName = b.FirstName AND o.Points < b.Points
WHERE b.Points is NULL
ORDER BY `o`.`Points` DESC
LIMIT 0,10
感谢大家,我希望有人需要它;)