當(dāng)前訪問本站: hits

          yjhmily

          堅持走自己的路……

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
                 假設(shè)我們現(xiàn)在有user和org兩張表:
          1、user用戶表 字段包含:id、name、orgId 其中orgId標示該用戶所屬的組織
          2、org組織表   字段包含:id、name
          兩表之間的關(guān)系很簡單,一個組織下會擁有多個用戶,一個用戶屬于某個組織。

                   在解析之前先普及一下數(shù)據(jù)庫空值(null)的概念:
          有很多時候我們都能碰到某表中某字段值為空的情況,空值不等同于字符串中的空格、空串
          也不等同于數(shù)字類型的0,所以,一般我們用IS NULL 關(guān)鍵字來檢索有空值字段的記錄。而不是用!=、<>這些判斷符。

                  接下來,我們給示例庫表中做上一些測試數(shù)據(jù),如下圖:
                                       

                  有了這些數(shù)據(jù),咱們就可以進入正題啦:
          一、左連接、右連接
                  A Left join(左連接)優(yōu)先解出左表中所有的記錄,包含右表中沒有匹配到得記錄。
                  A Right join(右連接)優(yōu)先解出右表中所有的記錄,包含左表中沒有匹配到得記錄。

          左右連接是相互對應(yīng)的,所以在這里一并解釋。
          羅嗦一句如何區(qū)分左表和右表:
                  在JOIN的左邊出現(xiàn)的表叫左表,在JOIN的右邊出現(xiàn)的表叫右表
          具體體現(xiàn)在SQL語句上即:(以左連接為例)
                  左連接語句:SELECT user.name,org.name FROM user LEFT JOIN org ON  user.orgId = org.id
                  右鏈接語句:SELECT user.name,org.name FROM user RIGHT JOIN org ON  user.orgId = org.id
          顯而易見,該SQL中,user為左表、org為右表
          下面我們來看看這兩個語句分別執(zhí)行后的效果:
                                             
                  為了更好的看出左右連接的效果,我們再來看看內(nèi)連接查詢出來的效果
                  內(nèi)連接:SELECT user.name,org.name FROM user JOIN org ON  user.orgId = org.id
          內(nèi)連接語句執(zhí)行后的效果:
                                                              
                  很明顯:
          內(nèi)連接與左連接相比,檢索結(jié)果集中漏掉了user表的user3數(shù)據(jù)
          內(nèi)連接與右連接相比,檢索結(jié)果集中漏掉了org表的org4數(shù)據(jù)

          posted on 2010-03-14 18:25 kangxm 閱讀(686) 評論(0)  編輯  收藏 所屬分類: SQL

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 余干县| 凌云县| 敦煌市| 天等县| 临安市| 广南县| 淮南市| 陆良县| 阿克陶县| 岑巩县| 青铜峡市| 峨山| 乐昌市| 和田县| 西吉县| 英超| 虎林市| 乌兰察布市| 枣强县| 新和县| 兴隆县| 莎车县| 岑溪市| 嘉禾县| 甘南县| 沁源县| 镇坪县| 普定县| 额尔古纳市| 大港区| 河北省| 武宣县| 四平市| 沅陵县| 中西区| 吴堡县| 时尚| 天门市| 合作市| 黔南| 盐边县|