日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用连接来代替in和not in(使用外连接技巧)

發布時間:2024/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用连接来代替in和not in(使用外连接技巧) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

比如:表A里面的一個字段叫做MOBILE 里面存的記錄如下 1
2
3
4
5
6
7
8
1
表B里面的一個字段也叫做MOBILE里面存的記錄如下 1
2
3
4
1
9
10
(1)我們要查詢一下A和B里面都有的,以前我使用的是 select?A.mobile from? A where A.mobile in (select B.mobile from B) 出來結果為: 1
1
2
3
4
沒關系,去除重復就得到結果1,2,3,4了 現在我們使用另外一種SQL呢: select A.mobile from A,B where A.mobile=B.mobile 結果為 1
1
2
3
4
1
1
同樣濾重得到結果1,2,3,4 (2)第二個實驗我們要取一下在A中有的,而在B中沒有的,以前我都是使用not in 不要太熟練了,呵呵!不過從來也不考慮個效率。 select??A.mobile from? A where A.mobile not in (select B.mobile from B) 得出結果 5
6
7
8
然后我們再使用連接在處理 select A.mobile from A,B where A.mobile=B.mobile(+) and B.mobile is null 這條語句還可以表示為: select A.mobile from A left outer? join B on (A.mobile=B.mobile) where B.mobile is null 結果為: 6
5
7
8
(3) 第三個實現我們要取B中有的,而A中沒有的,直接用連接了 select B.mobile from B left outer join A on (B.mobile=A.mobile) where A.mobile is null 等價于 select B.mobile from A,B where A.mobile(+)=B.mobile and?A.mobile is null? 等價于 select B.mobile from A right outer join B on (A.mobile=b.mobile) where A.mobile is null 結果為: 10
9
這樣的話大家應該對左外連接,右外連接有個理解了吧!!!使用連接肯定是要比not in 的效率高多了,這可不是我說的DBA說的!呵呵!ORACLE10G測試通過! 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的使用连接来代替in和not in(使用外连接技巧)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。