0

这听起来有点奇怪……但让我试着解释一下

id       phone
1        123
2        234
3        456
4        4564
5        9876
..............
1000       123
2000       234  
3000       456
5000       123

我需要以这样的方式编写查询,当我提取表的前 5 条记录时,查询还将在同一个表中搜索前 5 条记录中出现的电话号码

所以最终的结果集将是

id      phone
1       123
2       234
3       456
4       4564
5       9876
1000    123
2000    234
3000    456
5000    123

我知道我可以分离相同的查询,首先提取前 5 个,然后遍历每个电话号码以提取与电话号码匹配的记录。但希望做一个单一的声明......如果可能的话......

谢谢

4

2 回答 2

0

就像是

SELECT ...
FROM yourtable
WHERE phone IN (
    SELECT DISTINCT phone
    FROM yourtable
    ORDER BY ...
    LIMIT 5
)

?

于 2012-10-08T05:17:59.063 回答
0
  Select t1.id,t2.phone from yourtable as t1 
left join yourtable as t2 on t2.phone = t1.phone
于 2012-10-08T05:21:05.053 回答