我的Java路上那些事兒

          快樂(lè)成長(zhǎng)
          posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          數(shù)據(jù)庫(kù)版本:Oracle 9i

          TESTA,TESTB,TESTC,各有A, B兩列

          A

          B

          001

          10A

          002

          20A

          A

          B

          001

          10B

          003

          30B

          A

          B

          001

          10C

          004

          40C

          連接分為兩種:內(nèi)連接與外連接。

          A.內(nèi)連接

          內(nèi)連接,即最常見(jiàn)的等值連接,例:

          SELECT * 
          FROM TESTA,TESTB
          WHERE TESTA.A=TESTB.A


          結(jié)果

          A

          B

          A

          B

          001

          10A

          001

          10B

          B.外連接

          外連接分為左外連接,右外連接和全外連接。

          1.  左外連接 left outer join 或者 left join

          左外連接就是在等值連接的基礎(chǔ)上加上主表中的未匹配數(shù)據(jù),例:

          SELECT *
          FROM TESTA 
          LEFT OUTER JOIN TESTB 
          ON TESTA.A=TESTB.A

          Oracle 支持另一種寫(xiě)法

          SELECT * 
          FROM TESTA,TESTB
          WHERE TESTA.A=TESTB.A(+)

          結(jié)果:

          A

          B

          A

          B

          001

          10A

          001

          10B

          002

          20A

          三個(gè)表做左外連接

          SELECT *
          FROM TESTA 
          LEFT OUTER JOIN TESTB 
          ON TESTA.A=TESTB.A
          LEFT OUTER JOIN TESTC
          ON TESTA.A=TESTC.A

          Oracle 支持的另外一種寫(xiě)法

          SELECT *
          FROM TESTA,TESTB,TESTC
          WHERE TESTA.A=TESTB.A(+)
          AND TESTA.A=TESTC.A(+)

          結(jié)果:

          A

          B

          A

          B

          A

          B

          001

          10A

          001

          10B

          001

          10C

          002

          20A

          2. 右外連接 right outer join 或者 right join

          右外連接是在等值連接的基礎(chǔ)上加上被連接表的不匹配數(shù)據(jù)

          SELECT *
          FROM TESTA 
          RIGHT OUTER JOIN TESTB 
          ON TESTA.A=TESTB.A

          Oracle支持的另一種寫(xiě)法

          SELECT *
          FROM TESTA,TESTB
          WHERE TESTA.A(+)=TESTB.A

          結(jié)果:

          A

          B

          A

          B

          001

          10A

          001

          10B

          003

          30B

          3.全外連接 full outer join 或者 full join

          全外連接是在等值連接的基礎(chǔ)上將左表和右表的未匹配數(shù)據(jù)都加上

          SELECT * 
          FROM TESTA 
          FULL OUTER JOIN TESTB
          ON TESTA.A=TESTB.A

          全外連接的等價(jià)寫(xiě)法,對(duì)同一表先做左連接,然后右連接

          SELECT  TESTA.*,TESTB.*
          FROM TESTA
          LEFT OUTER JOIN TESTB
          ON TESTA.A=TESTB.A
          UNION
          SELECT TESTA.*,TESTB.*
          FROM TESTB
          LEFT OUTER JOIN TESTA
          ON TESTA.A=TESTB.A

          結(jié)果:

          A

          B

          A

          B

          001

          10A

          001

          10B

          002

          20A

          003

          30B



          評(píng)論

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2013-08-16 10:54 by 設(shè)計(jì)大師 小林
          O(∩_∩)O謝謝

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)[未登錄](méi)  回復(fù)  更多評(píng)論   

          2013-12-05 19:12 by xxx
          好文

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)[未登錄](méi)  回復(fù)  更多評(píng)論   

          2014-01-08 14:40 by 小歐
          不會(huì)做哪些不和發(fā)的http://www.51fsk.com/(富士康直招網(wǎng)) http://www.huigongzuo.com/

          http://www.luwuyou.com/ http://www.peixunt.com/ http://www.yuwomen.com/

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2014-03-10 16:56 by Cxb
          很清晰易懂,謝謝

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2014-03-13 23:06 by okok
          謝謝分享,不是很深入,但看完也算基本入門(mén)了。謝謝!

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2014-04-08 16:23 by sd
          很詳細(xì)

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2015-03-18 16:40 by nir
          很清晰

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2015-03-19 16:30 by 非客
          文章不錯(cuò)

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2015-05-26 15:06 by 苗利國(guó)
          簡(jiǎn)單易懂 清晰明了

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2015-06-06 16:06 by 111111111
          寫(xiě)的讓我一下子就懂了

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2015-11-24 13:23 by 小夜醬
          受用了

          # re: Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)  回復(fù)  更多評(píng)論   

          2016-04-18 17:55 by q
          q

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 满洲里市| 扶余县| 大石桥市| 健康| 乌鲁木齐市| 灵川县| 通化县| 资阳市| 怀来县| 宁远县| 麻江县| 嫩江县| 芜湖县| 丽水市| 台前县| 惠水县| 津市市| 阳西县| 邵东县| 庐江县| 鄂托克前旗| 北宁市| 鄂温| 昌都县| 华坪县| 洪泽县| 普陀区| 曲松县| 讷河市| 六盘水市| 崇义县| 新源县| 嘉荫县| 和平县| 西贡区| 肃北| 嫩江县| 新兴县| 乡城县| 温州市| 邵武市|