當前訪問本站: hits

          yjhmily

          堅持走自己的路……

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
                 假設我們現(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)先解出右表中所有的記錄,包含左表中沒有匹配到得記錄。

          左右連接是相互對應的,所以在這里一并解釋。
          羅嗦一句如何區(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)站導航:
           
          主站蜘蛛池模板: 柳州市| 平武县| 宝应县| 于都县| 吉林市| 黔西县| 双鸭山市| 兰考县| 景洪市| 南安市| 三明市| 兴宁市| 康马县| 彩票| 兴安盟| 宽甸| 建德市| 右玉县| 开鲁县| 宿松县| 栾川县| 济宁市| 梁山县| 敦化市| 称多县| 博白县| 宁波市| 昌吉市| 自贡市| 铜山县| 中卫市| 富锦市| 当雄县| 宣化县| 金沙县| 南木林县| 双流县| 银川市| 彩票| 环江| 新绛县|