国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

深入sql多表差異化聯合查詢的問題詳解

2024-07-24 12:40:48
字體:
來源:轉載
供稿:網友
本章簡略講述本人在實例開發中遇到的多表查詢的問題 其中主要講述 select A.*,B.*,C.* from A,B,C 和 select A.*,B.*,C.* from 表A inner join 表B on A.id=B.id inner join 表C on A.code=C.code 的區別   最近遇到一個這樣的項目需求——要求頁面集合顯示三個關聯表的信息。 由于實際項目里出現的字段比較多,現在簡化說明如下: table A 含有字段 UserName,CardCode,ItamCode table B 含有字段 CardCode,CardName table C 含有字段 ItamCode,ItamName   其中界面要在一個數據集里同時出現UserName,CardName,ItamName 話說雖然學過SQL 內聯,外聯的問題,但是以前的項目基本出現的都是兩個表的關聯實現,現在是第一次用到超過兩個表的關聯實現問題。在百度找了一下資料,才發現原來基本原理是一樣的。哈,本人去年才入職,經驗不足,大神們,請別見笑哈! 呃,如果讀者暫時還不熟悉SQL基本內聯,外聯的相關知識,請自覺找度娘面壁去哈,筆者在這里不熬述了。長話短說,現在進入正題……   發現要實現上面的功能有兩種方法,分別是 select A.UserName,B.CardName,C.ItamName from A,B,C 和 select A.UserName,B.CardName,C.ItamName from 表A inner join 表B on A.CardCode=B.CardCode inner join 表C on A.ItamCode=C.ItamCode (如果字段是差異化的話,可以略寫表名)   就上面的語法來說,其實兩種實現方法的效果是一樣的,但如果真要較真細說優劣的話,還是第二種實現方法比較實用的。 用inner join(全外聯)的寫法, 不僅可以按照實際需求自由轉化left join(左外聯)和right join(右外聯),而且注明了結合的順序, 特別是支持了SQL文優化的方便。   還有一個就是說當我某個字段可以為null的時候,第一種查詢方法得出的值其實是不完全的。比如說我上面的例子中當table C 的ItanName 并非必填的時候,只能通過左外連接(left join)來實現我們需要的效果。 有興趣的同學可以自己操作一下,驗證下兩種方法的不同。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉沽区| 鹤壁市| 门源| 永平县| 江陵县| 新河县| 台中县| 桦甸市| 潞西市| 西丰县| 曲周县| 郓城县| 吴忠市| 庄浪县| 饶阳县| 乌拉特后旗| 出国| 奎屯市| 平山县| 平利县| 达州市| 青冈县| 新沂市| 宁武县| 南部县| 成安县| 四子王旗| 白水县| 朝阳市| 长海县| 凌海市| 开化县| 新密市| 和龙市| 凤阳县| 门源| 玉环县| 南城县| 岳普湖县| 梁平县| 莱西市|