sql -- 查找电话相同的人的姓名

来源:互联网 发布:淘宝贷款什么意思 编辑:程序博客网 时间:2024/04/30 23:47


                    今天遇到了一个SQL语句的问题,现有一张表,表名为t_people。表数据如下所示:

                   

                   要求:查询电话相同的人的姓名


                  刚看到这个问题的时候,我还有点犯晕(请不要嘲笑,确实我技术比较菜),然后自然只能上网查喽,查到类似的案例有两种方式。

                  第一种:SELECT p1.* FROM t_people p1 INNER JOIN t_people p2 ON p1.phone = p2.phone AND p1.id <> p2.id

                  结果耗时0.002s,如下所示:

                  

                 第二种:SELECT * FROM t_people WHERE phone IN (SELECT phone FROM t_people GROUP BY phone HAVING COUNT(*) > 1)

                结果耗时0.009s,如下所示:

                 

               第三种:SELECT id,NAME,phone,(SELECT COUNT(*) FROM t_people p2 WHERE p1.phone = p2.phone)AS total FROM t_people p1 HAVING total > 1

               结果耗时0.001s

0 0
原创粉丝点击