婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > sql表連接查詢使用方法(sql多表連接查詢)

sql表連接查詢使用方法(sql多表連接查詢)

熱門標簽:安陽天音防封電銷卡 智能外呼系統需要多少錢 云南全自動外呼系統公司 智能語音車載電話機器人 貴州外呼回撥系統是什么 外呼系統的話術 競圣地圖標注服務 衛星地圖標注距離 陽光創信ai外呼獲客系統助力

實際的項目,存在多張表的關聯關系。不可能在一張表里面就能檢索出所有數據。如果沒有表連接的話,那么我們就需要非常多的操作。比如需要從A表找出限制性的條件來從B表中檢索數據。不但需要分多表來操作,而且效率也不高。比如書中的例子:

復制代碼 代碼如下:

SELECT FId
FROM T_Customer
WHERE FName='MIKE'

這個SQL語句返回2,也就是姓名為MIKE 的客戶的FId值為2,這樣就可以到T_Order中檢索FCustomerId等于2 的記錄:

復制代碼 代碼如下:

SELECT FNumber,FPrice
FROM T_Order
WHERE FCustomerId=2

下面我們詳細來看看表連接。表連接有多種不同的類型,有交叉連接(CROSS JOIN)、內連接(INNER JOIN)、外連接(OUTTER JOIN)。

(1)內連接(INNER JOIN):內連接組合兩張表,并且只獲取滿足兩表連接條件的數據。

復制代碼 代碼如下:

SELECT o.FId,o.FNumber,o.FPrice,
c.FId,c.FName,c .FAge
FROM T_Order o JOIN T_Customer c
ON o.FCustomerId= c.FId

注:在大多數數據庫系統中,INNER JOIN中的INNER是可選的,INNER JOIN 是默認的連接方式。

在使用表連接的時候可以不局限于只連接兩張表,因為有很多情況下需要聯系許多表。例如,T_Order表同時還需要連接T_Customer和T_OrderType兩張表才能檢索到所需要的信息,編寫如下SQL語句即可:

復制代碼 代碼如下:

SELECT o.FId,o.FNumber,o.FPrice,
c.FId,c.FName,c .FAge
FROM T_Order o JOIN T_Customer c
ON o.FCustomerId= c.FId
INNER JOIN T_OrderType
ON T_Order.FTypeId= T_OrderType.FId

(2)交叉連接(CROSS JOIN):交叉連接所有涉及的表中的所有記錄都包含在結果集中。可以采用兩種方式來定義交叉連接,分別是隱式和顯式的連接。

下面看看隱式的例子:

復制代碼 代碼如下:

SELECT T_Customer.FId, T_Customer.FName, T_Customer.FAge,
T_Order.FId, T_Order.FNumber, T_Order.FPrice
FROM T_Customer, T_Order

使用顯式的連接則需要使用CROSS JOIN,例子如下:

復制代碼 代碼如下:

SELECT T_Customer.FId, T_Customer.FName, T_Customer.FAge,
T_Order.FId, T_Order.FNumber, T_Order.FPrice
FROM T_Customer
CROSS JOIN T_Order

(3)外連接(OUTTER JOIN):內部連接只獲取滿足連接條件的數據,而對于外部連接來說,主要是解決這樣的一種場景。滿足條件的數據檢索出來,這個沒有疑問,外部連接還會檢索另一部分數據,那就是將不滿足條件的數據以NULL來填充。先來看一下外連接的分類:左外部連接(LEFT OUTER JOIN)、右外部連接(RIGHT OUTER JOIN)和全外部連接(FULLOUTER JOIN)。

I、左外部連接(LEFT OUTER JOIN):前頭也說了,將不滿足條件的數據以NULL來填充。那么具體是哪些需要以NULL來填充呢,對于左外連接來說的話,連接條件當中,如果出現滿足條件的左表的數據在右表中沒有相應匹配時,需要把相應的右表字段填充NULL值。也就是說左外部連接的主體是左表,右表來配合。

復制代碼 代碼如下:

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId

注:如果使用左外部連接的話,通過where語句能過濾其中不符合的數據

復制代碼 代碼如下:

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
WHERE o.FPrice>=150

II、右外部連接(RIGHT OUTER JOIN):右外部連接與左外連部接相反,將會被填充NULL值的是左表的字段。也就是說右外部連接的主體是右表,左表來配合。

復制代碼 代碼如下:

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
RIGHT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId

注:同左外連接一樣,可以使用where語句進行過濾

III、全外部連接(FULLOUTER JOIN):全外部連接是左外部連接和右外部連接的合集。也就是既包括左外部連接的結果集,也包括右外部連接的結果集。

復制代碼 代碼如下:

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
FULL OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId

其結果相當于:

復制代碼 代碼如下:

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
UNION
SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
RIGHT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId

您可能感興趣的文章:
  • SQL重復記錄查詢的幾種方法
  • SQL 多表連接查詢實現語句
  • SQL 查詢語句積累
  • 三表左連接查詢的sql語句寫法
  • SQL查詢的底層運行原理深入分析

標簽:河源 周口 預約服務 欽州 鄂爾多斯 寧夏 營口 湘潭

巨人網絡通訊聲明:本文標題《sql表連接查詢使用方法(sql多表連接查詢)》,本文關鍵詞  sql,表,連接,查詢,使用方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sql表連接查詢使用方法(sql多表連接查詢)》相關的同類信息!
  • 本頁收集關于sql表連接查詢使用方法(sql多表連接查詢)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 缙云县| 郴州市| 鹤壁市| 西林县| 郑州市| 平陆县| 资阳市| 石阡县| 耒阳市| 广安市| 云和县| 朔州市| 岳池县| 五莲县| 阿克苏市| 客服| 洛浦县| 海城市| 江津市| 军事| 吉木萨尔县| 商都县| 双桥区| 黑水县| 玛多县| 来凤县| 全南县| 游戏| 宣武区| 麻城市| 延安市| 葵青区| 忻州市| 马关县| 商都县| 凤城市| 洛南县| 四子王旗| 平江县| 三明市| 西乌珠穆沁旗|