<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    前字節(jié)員工爆料稱,在新入職公司進(jìn)行背調(diào)時(shí),竟然背調(diào)出了他在字節(jié)跳動(dòng)公司的N+1補(bǔ)償和最后一任領(lǐng)導(dǎo)的名字

    共 3207字,需瀏覽 7分鐘

     ·

    2024-04-02 22:52

    昨天摸魚的時(shí)候發(fā)現(xiàn)一個(gè)挺離譜的“爆料”,個(gè)人對(duì)這事得真實(shí)性存疑:某個(gè)程序員在新公司入職的背景調(diào)查過(guò)程中,出人意料地查到了他在字節(jié)跳動(dòng)時(shí)期的N+1補(bǔ)償詳情以及上一任領(lǐng)導(dǎo)的姓名,并且調(diào)查系統(tǒng)明確標(biāo)記了他是通過(guò)協(xié)商離職的方式離開的。

    按照正常的理解,背調(diào)最主要的目的就是確認(rèn)真實(shí)性,也就是驗(yàn)證應(yīng)聘者提供的信息是否真實(shí)可靠,包括但不限于工作經(jīng)歷、教育背景、技能和資質(zhì)證書等。

    至于離職的原因都被挖掘出來(lái),或許涉及到侵犯?jìng)€(gè)人隱私了,有點(diǎn)離譜。


    以下是今天的SQL干貨

    今天主要通過(guò)圖形的方式,給大家講解JOIN ON在數(shù)據(jù)庫(kù)中執(zhí)行原理。

    測(cè)試環(huán)境

    SQL Server 2017

    測(cè)試樣表

    我們新建兩張測(cè)試表Customers和Orders,表結(jié)構(gòu)如下:

    本文主要講解JOIN ON在數(shù)據(jù)庫(kù)中是怎么執(zhí)行的。

    測(cè)試環(huán)境

    SQL Server 2017

    測(cè)試樣表

    我們新建兩張測(cè)試表Customers和Orders,表結(jié)構(gòu)如下:

    Customers
    Orders

    要求:查詢每個(gè)客戶的訂單數(shù)量

    我們先直接寫出查詢語(yǔ)句:

    SELECT a.CustomerName,Count(OrderID) Nums
    FROM Customers a
    LEFT JOIN Orders b ON a.CustomerID=b.CustomerID
    GROUP BY a.CustomerName

    結(jié)果如下:

    問(wèn):這個(gè)結(jié)果是怎么來(lái)的呢?

    要搞清楚這個(gè)結(jié)果是怎么來(lái)的,我們需要先知道一個(gè)概念:笛卡爾積。

    1、執(zhí)行笛卡爾積(交叉聯(lián)接)

    什么是笛卡爾積?

    笛卡爾乘積是指在數(shù)學(xué)中,兩個(gè)集合X和Y的笛卡爾積,表示為X×Y,第一個(gè)對(duì)象是X的成員而第二個(gè)對(duì)象是Y的所有可能有序?qū)Φ钠渲幸粋€(gè)成員。具體如下圖:

    而我們?cè)谶M(jìn)行SQL的表關(guān)聯(lián)時(shí),JOIN的第一步就是生成笛卡爾積。我們上面的代碼

    ... Customers a LEFT JOIN  Orders b ...

    最開始是在數(shù)據(jù)庫(kù)中生成了一張笛卡爾積的虛表T1,T1里面的數(shù)量正是兩個(gè)表(Customers和Orders)數(shù)量的乘積9條(3 × 3),我們可以使用如下代碼獲得笛卡爾積:

    SELECT 
    B.CustomerID,
    B.CustomerName,
    A.OrderID,
    A.CustomerID
    FROM Orders A
    CROSS JOIN Customers B

    查詢出來(lái)的數(shù)據(jù)如下:

    虛表T1

    2、執(zhí)行過(guò)濾篩選

    當(dāng)JOIN將兩個(gè)表生成笛卡爾積的虛表T1之后,隨后的ON開始執(zhí)行篩選功能,ON后面的條件就是指符合條件的返回結(jié)果TRUE,不符合條件的返回結(jié)果FALSE,以及未知情況UNKNOWN。

    而我們上面的代碼中的ON的條件是這樣寫的:

    ... a.CustomerID=b.CustomerID ...

    意思就是取a(表Customers的別名)和b(表Orders的別名)中CustomerID相等的結(jié)果。根據(jù)這個(gè)篩選條件,虛表T1中可以生成相應(yīng)邏輯值,如下圖:

    ON篩選的邏輯結(jié)果表

    從上面我們可以看到完全滿足條件(Logic Value的值為TRUE)的只有兩條記錄,數(shù)據(jù)庫(kù)會(huì)將這些結(jié)果插入到虛表T2,進(jìn)行下一步的操作準(zhǔn)備。

    虛表T2

    3、添加外部行

    這一步只在外聯(lián)接(OUT JOIN)中才會(huì)發(fā)生。對(duì)于外聯(lián)接,通過(guò)為其指定一種聯(lián)接方式(LEFT,RIGHT或FULL),就把一個(gè)或兩個(gè)輸入表標(biāo)記為保留表。

    把表標(biāo)記為保留表,即表示希望返回該表的所有行,即使ON過(guò)濾了一些行。

    左連接(LEFT OUT JOIN)是把左邊的表作為保留表,右連接(RIGHT OUT JOIN)是把右邊的表作為保留表,全連接(FULL OUT JOIN)則是把兩個(gè)表都作為保留表。(我們?cè)跁鴮憰r(shí),通常會(huì)省略掉OUT)

    在執(zhí)行完ON的篩選后,我們根據(jù)寫法來(lái)添加這些保留表中記錄。

    我們上面的代碼使用的是LEFT JOIN,所以我們需要將左表(注:LEFT JOIN 左邊的表)Customers表作為保留表。

    在ON篩選完后,我們發(fā)現(xiàn)Customers表中CustomerID為1的沒(méi)有在T2中,我們需要將這條記錄的相關(guān)信息添加到T2中生成虛表T3,并且將Order表中的所有數(shù)據(jù)置為NULL,因?yàn)樗麄儯ㄖ副鞳rders中的兩列)不屬于保留表,不是我們需要保留的數(shù)據(jù)。這樣匯總后虛表T3中的數(shù)據(jù)如下:

    虛表T3

    這樣當(dāng)我們?cè)賹?duì)表Orders中的OrderID計(jì)數(shù)時(shí),CustomerID為1的客戶因?yàn)闆](méi)有訂單,返回的結(jié)果將為0,而CustomersID為2,3的客戶都有一個(gè)訂單,返回的結(jié)果將為1。

    至此整個(gè)表關(guān)聯(lián)環(huán)節(jié)就執(zhí)行完成了。

    參考文獻(xiàn)

    《Microsoft SQL Server 2008技術(shù)內(nèi)幕:T-SQL查詢》

    以上就是JOIN在數(shù)據(jù)庫(kù)中執(zhí)行的相關(guān)內(nèi)容,如有不明白的地方,歡迎在底下留言。

       
    最后給大家分享我寫的SQL兩件套:《SQL基礎(chǔ)知識(shí)第二版》《SQL高級(jí)知識(shí)第二版》的PDF電子版。里面有各個(gè)語(yǔ)法的解釋、大量的實(shí)例講解和批注等等,非常通俗易懂,方便大家跟著一起來(lái)實(shí)操。

    有需要的可以下載學(xué)習(xí),只需要在下面的公眾號(hào)「數(shù)據(jù)前線(非本號(hào)),后臺(tái)回復(fù)關(guān)鍵字:SQL,就行

    數(shù)據(jù)前線

          
    后臺(tái)回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨
    后臺(tái)回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的交流群。
           

    推薦閱讀

             

    文章有幫助的話,點(diǎn)個(gè)贊或在看吧。

    謝謝支持

    瀏覽 48
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    狠狠干天天干 | 天天插天天日 | 五月婷婷丁香在线观看视频麻豆 | 91老夫老妻干老B | 爱爱视频免费看 |