sql -- 查找電話相同的人的姓名


                    今天遇到了一個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

發佈了26 篇原創文章 · 獲贊 13 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章