sql中各種join的筆記

          首先聲明,當(dāng)你看到這篇文章時(shí),或許看不懂,因?yàn)檫@是我自己通過自己理解而寫的筆記、

          兩個(gè)參照表table1和table2都存在id字段,但是table1、table2中其余字段不同.  
          如果table1.id存在有1,2,3而table2.id中有1,3,4三個(gè)值

          使用各種連接的語法,
          select * from table1 left join table2 on table1.id=table2.id;
          紫色字段可以填充 left join(左連接),right join(右連接),full join(全連接),join(內(nèi)連接).

          交叉連接
          select * from table1 cross join table2;

          根據(jù)不同的鏈接,產(chǎn)生出不同的結(jié)果。

          左連接,參照為table1,
          那么結(jié)果則是參照table1.id給出。也就是1,2,3而table2.id并沒有對(duì)應(yīng)值為3的參照,其相應(yīng)用null填充。

          右連接參照table2.id給出,而用法與左連接類似。此處不再贅述。

          全連接。要參照table1.id和table2.id給出,會(huì)產(chǎn)生4個(gè)字段結(jié)果。table1存在而table2不存在的字段用null填充。反之亦然。多說一句。可以說全鏈接是左、右連接的并。

          內(nèi)連接產(chǎn)生兩個(gè)字段,即左、右連接的交。只產(chǎn)生table1.id=table2.id的結(jié)果。可以認(rèn)為就是select * from table1 table2 where table1.id = table2.id;

          交叉連接產(chǎn)生的結(jié)果比較多,有9個(gè)結(jié)果,即table1.id。size()×table2.size()。(此處不規(guī)范,但是自己做的筆記能明白就可以了)。
          即笛卡爾積。

          posted on 2008-10-31 20:43 duduli 閱讀(317) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地?cái)們?/h3>

          搜索

          •  

          積分與排名

          • 積分 - 256491
          • 排名 - 220

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          @duduli
          主站蜘蛛池模板: 新泰市| 汶上县| 梨树县| 萍乡市| 长兴县| 沈丘县| 新野县| 南召县| 新龙县| 宣恩县| 新兴县| 晋州市| 云阳县| 北宁市| 区。| 驻马店市| 嘉义市| 湘乡市| 松原市| 册亨县| 鄂尔多斯市| 鄢陵县| 石河子市| 邵阳市| 宣武区| 宝清县| 叙永县| 太白县| 元氏县| 杭锦旗| 绥棱县| 唐河县| 株洲市| 沅陵县| 洞头县| 沈阳市| 门源| 双流县| 五指山市| 宁阳县| 高雄县|