从表中获取与结果集匹配的所有记录

时间:2012-10-08 05:15:47

标签: mysql self-join

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

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个,然后遍历每个电话号码,以便在与电话号码匹配时拉取记录。但是我希望做一个单独的陈述...如果可能......

感谢

2 个答案:

答案 0 :(得分:0)

这样的东西
SELECT ...
FROM yourtable
WHERE phone IN (
    SELECT DISTINCT phone
    FROM yourtable
    ORDER BY ...
    LIMIT 5
)

答案 1 :(得分:0)

  Select t1.id,t2.phone from yourtable as t1 
left join yourtable as t2 on t2.phone = t1.phone