<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

      <noframes id="xpjh9">
      VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
      SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
      當前位置:
      首頁 > 數據庫 > sql語句 >
      • sql語句大全之外連接

      • 2015-01-18 21:47 來源:未知

       外連接sql語句大全
      由于內連接可能產生信息的丟失,為避免這種情況的發生,用戶可以使用外連接。外連接與內連接不同,在查詢時所用的基表有主從表之分。使用外連接時,以主表中每行數據去匹配從表中的數據行,如果符合連接條件則返回到結果集中;如果沒有找到匹配行,則主表的行仍然保留,并且返回到結果集中,相應的從表中的數據行被填上NULL值后也返回到結果集中。

      根據返回行的主從表形式不同,外連接可以分為三種類型:左外連接、右外連接和全外連接。各種外連接方式有獨特的關鍵字,下面對這三種連接方式進行詳細介紹。
      1.左外連接
      左外連接是指返回所有的匹配行并從關鍵字JOIN左邊的表中返回所有不匹配行。由此可知,即使不匹配,JOIN關鍵字左邊的表中數據也將被保留,所以在左外連接中JOIN關鍵字左邊的表為主表,右邊的表為從表。使用左邊連接的一般語法結構為:
      SELECT select_list
      FROM table LEFT OUTER JOIN table2[ON join_conditions]
      [WHERE search_conditions]
      [ORDER BY order_expression]
      上面語句結構中OUTER JOIN表示外連接,而LEFT表示左外連接的關鍵字,因此table1為主表,table2為從表。
      例如,在“訂單信息”表中一個商品編號,對應一個具體的商品;而在“商品信息”表中保存了數據庫中所有的商品,相對應“商品信息”表中所有商品并不是都要被購買,因此可以使用這兩個表作為左外連接,可以使用下面語句:
      USE 網店購物系統
      SELECT 商品信息.商品名稱,商品信息.商品價格,訂單信息.交易數量
      FROM 商品信息 LEFT OUTER JOIN 訂單信息
      ON 商品信息.商品編號 = 訂單信息.商品編號
      上面語句返回結果顯示商品名稱、商品價格、交易數量,主表為商品信息,從表為訂單信息,執行語句后,結果如圖5-28所示。

      圖5-28  使用左外連接
      從上圖可以看到,由于在“訂單信息”表存在不匹配的行,因此不匹配結果的交易數量為NULL值。
      2.右外連接
      與左外連接相反,右外連接返回所有的匹配行并從關鍵字JOIN右邊的表中返回所有不匹配的行。因此,在右外連接中JOIN關鍵字右邊的為主表,而關鍵字左邊的為從表,右外連接返回結果與左外連接相同,即不滿足匹配的結果集在相應列中添加NULL值。
      使用右外連接的語句結構為:
      SELECT select_list
      FROM table1 RIGHT OUTER JOIN table2 [ON join_conditions]
      [WHERE search_conditions]
      [ORDER BY order_expression]
      OUTER JOIN表示外連接,RIGHT為右外連接的關鍵字。例如,同樣在“商品信息”表和“訂單信息”表中使用右外連接,返回商品名稱、商品價格、交易數量、交易時間,可以使用下面的語句:
      USE 網店購物系統
      SELECT 商品信息.商品名稱,商品信息.商品價格,訂單信息.交易數量,訂單信息.交易時間
      FROM 訂單信息  RIGHT OUTER JOIN 商品信息
      ON 商品信息.商品編號 = 訂單信息.商品編號
      語句中“商品信息”為主表,而“訂單信息”為從表,返回結果中不滿足匹配條件的,即沒有被訂購的商品,會在交易數量和交易時間列中顯示NULL值。如圖5-29所示。

      圖5-29  使用右外連接
      3.全外連接
      全外連接又稱完全外連接,該連接查詢方式返回連接表中所有行的數據。與左外連接相同,JOIN關鍵字左邊為主表,而JOIN關鍵字右邊為從表。根據匹配條件,如果滿足匹配條件時,則返回數據;如果不滿足匹配條件時,同樣返回數據只不過在相應列中填入NULL值。在整個全外連接返回結果中,包含了兩個完全連接表的所有數據。
      使用全外連接一般語法結構為:
      SELECT select_list
      FROM table1 FULL OUTER JOIN table2 [ON join_conditions]
      [WHERE search_conditions]
      [ORDER BY order_expression]
      例如在“商品信息”表和“訂單信息“表中使用全外連接,可以使用下面語句:
      USE 網店購物系統
      SELECT 商品信息.商品名稱,商品信息.商品價格,訂單信息.交易數量,訂單信息.交易時間
      FROM 訂單信息  FULL OUTER JOIN 商品信息
      ON 商品信息.商品編號 = 訂單信息.商品編號
      從上面語句中可以看到,“訂單信息”為主表,而“商品信息”為從表,返回結果一定是按照“訂單信息”表中的數據進行匹配,返回結果如圖5-30所示。

      圖5-30  使用全外連接
      從返回結果中可以看出,按照“訂單信息”表進行匹配,前面11行顯示了相應商品信息,而最后的兩行不匹配“訂單信息”表中的行,因此在交易數量、交易時間列填入NULL值。
      相關教程
      江苏快3 临夏 | 广元 | 海西 | 晋江 | 晋城 | 灵宝 | 高雄 | 济南 | 嘉兴 | 达州 | 四川成都 | 曹县 | 铜仁 | 莒县 | 江门 | 济南 | 沛县 | 滨州 | 娄底 | 德宏 | 项城 | 广饶 | 六盘水 | 石狮 | 高雄 | 巢湖 | 涿州 | 芜湖 | 攀枝花 | 浙江杭州 | 阜阳 | 福建福州 | 海宁 | 吉林 | 延边 | 金坛 | 上饶 | 遵义 | 山西太原 | 大庆 | 台湾台湾 | 果洛 | 神农架 | 中山 | 三明 | 宝鸡 | 吉林长春 | 延安 | 防城港 | 塔城 | 定安 | 三明 | 吉林 | 寿光 | 宝鸡 | 金华 | 四平 | 巴彦淖尔市 | 桂林 | 攀枝花 | 莱州 | 丽江 | 邢台 | 涿州 | 铜仁 | 日喀则 | 辽阳 | 荆州 | 通化 | 盐城 | 张家界 | 顺德 | 项城 | 威海 | 邵阳 | 白沙 | 淮北 | 中卫 | 海安 | 铜陵 | 汕尾 | 昭通 | 淮南 | 改则 | 巴中 | 瑞安 | 滨州 | 漯河 | 洛阳 | 恩施 | 汉中 | 中山 | 沭阳 | 黄石 | 吉林长春 | 辽阳 | 德州 | 武威 | 黔南 | 巴中 | 鞍山 | 三亚 | 辽源 | 定西 | 菏泽 | 莱芜 | 衡水 | 昭通 | 和县 | 临汾 | 吴忠 | 吐鲁番 | 遵义 |