<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基本功:SQL 多表聯(lián)合查詢的幾種方式

          2022-04-17 23:20

          點擊關注公眾號,實用技術文章及時了解

          來源:blog.csdn.net/zt15732625878/article

          /details/79074123

          前言

          最近在項目中用到連接查詢,連接查詢是關系數(shù)據(jù)中最主要的查詢,包括內連接、外連接等。通過連接運算符可以實現(xiàn)多個表查詢。下面來復習一下。

          正文

          連接查詢主要分為三種:內連接、外連接、交叉連接。

          內連接

          使用比較運算符(包括=>、<、<>、>=<=、!>!<)進行表間的比較操作,查詢與連接條件相匹配的數(shù)據(jù)。根據(jù)所使用的比較方式不同,內連接分為等值連接、自然連接和自連接三種。

          關鍵字 INNER JOIN

          等值連接/相等連接

          使用”=”關系將表連接起來的查詢,其查詢結果中列出被連接表中的所有列,包括其中的重復列

          SELECT
          ????PM_ACT_JOB_RLS.*,?PM_ACT_RLS.*
          FROM
          ????PM_ACT_JOB_RLS
          INNER?JOIN?PM_ACT_RLS?ON?PM_ACT_JOB_RLS.RlsPK?=?PM_ACT_RLS.RlsPK

          自然連接

          等值連接中去掉重復的列,形成的連接

          SELECT
          ????PM_ACT_JOB_RLS.JobPK,
          ????PM_ACT_RLS.RlsPK,
          ????RlsName
          FROM
          ????PM_ACT_JOB_RLS
          INNER?JOIN?PM_ACT_RLS?ON?PM_ACT_JOB_RLS.RlsPK?=?PM_ACT_RLS.RlsPK

          自連接

          如果在一個連接查詢中,設計到的兩個表都是同一個表,這種查詢稱為自連接查詢。

          --c1、c2邏輯上是兩張表,物理上是一張表
          SELECT
          ????c1.CategoryID,
          ????c1.CategoryName
          FROM
          ????[dbo].[Category]?c1
          INNER?JOIN?[dbo].[Category]?c2?ON?c1.[CategoryID]?=?c2.[ParentID]

          外連接

          內連接只返回滿足連接條件的數(shù)據(jù)行,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數(shù)據(jù)行。外連接分為左外連接、右外鏈接、全外連接三種。

          左外連接

          返回左表中的所有行,如果左表中行在右表中沒有匹配行,則在相關聯(lián)的結果集中右表的所選擇字段均為NULL。

          關鍵字 LEFT [OUTER] JOIN

          --左外連接??--1679條數(shù)據(jù)
          SELECT
          ????me.*,
          ????mo.*
          FROM
          ????MM_LOTS_EXT?AS?me
          LEFT?OUTER?JOIN?MM_LOT_OPERATIONS?AS?mo?ON?me.LotID?=?mo.SerialNumber

          右外連接

          返回右表中的所有行,如果右表中行在左表中沒有匹配行,則在左表中相關字段返回NULL值。

          關鍵字 ? ? RIGHT [OUTER] JOIN

          --右外連接??--209條數(shù)據(jù)
          SELECT
          ????me.*,
          ????mo.*
          FROM
          ????MM_LOTS_EXT?AS?me
          RIGHT?OUTER?JOIN?MM_LOT_OPERATIONS?AS?mo?ON?me.LotID?=?mo.SerialNumber

          全外連接/完全外連接

          返回兩個連接中所有的記錄數(shù)據(jù),是左外連接和右外連接的并集。

          關鍵字 ? ? FULL [OUTER] JOIN

          --全外連接??--1816條數(shù)據(jù)?
          SELECT
          ????me.*,
          ????mo.*
          FROM
          ????MM_LOTS_EXT?AS?me
          FULL?OUTER?JOIN?MM_LOT_OPERATIONS?AS?mo?ON?me.LotID?=?mo.SerialNumber

          交叉連接/笛卡爾積

          兩個表做笛卡爾積,得到的結果集的行數(shù)是兩個表的行數(shù)的乘積。

          關鍵字 ? ? ?CROSS JOIN

          --笛卡爾積?(cross?join后加條件只能用where,不能用on)??--45條數(shù)據(jù)(9*5)
          SELECT
          ????*
          FROM
          ????PM_ACT_JOB_RLS
          CROSS?JOIN?PM_ACT_RLS

          注意:帶有where條件的子句,往往會先生成兩個表行數(shù)乘積的數(shù)據(jù)表,然后從根據(jù)where條件從中選擇。

          當數(shù)據(jù)量比價大的時候,笛卡爾積操作會很消耗數(shù)據(jù)庫的性能

          總結

          連接查詢是關系型數(shù)據(jù)庫中的一個重要標志,這次和大家一起復習多表查詢的幾種操作,希望給您帶來幫助!

          如有文章對你有幫助,

          在看”和轉發(fā)是對我最大的支持!

          暫時開放微信大號,好友位不多,需要的小伙伴們可以加,朋友圈和交流群里會發(fā)一些學習資料、個人見解、白嫖課程等等。

          掃描下方二維碼即可加我微信啦,2022,抱團取暖,一起牛逼。

          瀏覽 35
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  综合在线视频网 | 毛片中文电影 | 99热在线精品观看 | 东京热影院免费AV | 黄色级片视频视频 |