我想知道如何选择满足结果表第一和第二低值的每个用户?
表测试
NAME VALUE
John 8
Marie 8
Luis 10
Carlos 10
Leo 13
Max 14
所以这种情况下的结果是
NAME VALUE
John 8
Marie 8
Luis 10
Carlos 10
非常感谢!
顺便说一下,我在google上搜索了我的家庭作品,并没有提出任何问题,只是查询表格,然后使用PHP过滤那些对我而言,对性能不利。@Aziz我收到错误:#1235 - 这个版本的MySQL还不支持'LIMIT& IN / ALL / ANY / SOME子查询'
由于
感谢所有人提供有用的答案!
为了防止出现像我这样有趣的结果,我需要更多过滤器并且必须添加到查询中,如下所示:
SELECT * FROM results_temp
WHERE
semana ='semana6'AND
total_pontos
IN(
SELECT * FROM(
SELECT DISTINCT total_pontos
来自results_temp
WHERE semana='semana6'
ORDER BY `total_pontos`
LIMIT 0,2
)AS t )
此致
答案 0 :(得分:2)
试试这个:
SELECT * FROM Test WHERE `value` IN (
SELECT * FROM (
SELECT DISTINCT `value`
FROM Test
ORDER BY `value`
LIMIT 0,2
) AS t
)
答案 1 :(得分:2)
试试这个:
SELECT t.*
FROM Test t
INNER JOIN (SELECT DISTINCT t.value FROM Test t ORDER BY t.value LIMIT 2
) A ON t.value = A.value;
<强>输出强>
| NAME | VALUE |
|--------|-------|
| John | 8 |
| Marie | 8 |
| Luis | 10 |
| Carlos | 10 |
答案 2 :(得分:1)
SELECT *
FROM tablename
WHERE
value <= (SELECT MIN(Value)
FROM tablename
WHERE value>(SELECT MIN(VALUE)
FROM tablename))
请参阅小提琴here。
答案 3 :(得分:1)
给定查询的不相关版本几乎总是更快......
SELECT x.*
FROM tablename x
JOIN (SELECT DISTINCT value FROM tablename ORDER BY value LIMIT 2) y
ON y.value = x.value;