最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

數(shù)據(jù)庫使用之union、union?all、各種join的用法區(qū)別解析

 更新時間:2025年02月06日 10:20:54   作者:我是蘇蘇  
這篇文章主要介紹了SQL中的Union和UnionAll的區(qū)別,包括去重與否以及使用時的注意事項,還詳細解釋了Join關(guān)鍵字,包括innerjoin和leftjoin的區(qū)別,以及聯(lián)表條件的寫法,需要的朋友可以參考下

一、Union 和Union All

1、區(qū)別:

Union去重,而Union All不去重。

2、注意點:

1.被合并的每個SELECT語句的列數(shù)、數(shù)據(jù)類型要相同(一一對應)。

2.使用Union時,由于可去重性,可能導致數(shù)據(jù)丟失。

3.使用Union All時,由于不可去重性,可能含重復的記錄。

3、具體舉例

【union】

【union all】

二、Join關(guān)鍵字的區(qū)別

 1.left join和inner join區(qū)別

【長話短說】inner join(內(nèi)連接)得到數(shù)據(jù)更少,直接剔除匹配不到的數(shù)據(jù)(剔除無關(guān)聯(lián)ID的數(shù)據(jù)),inner join = join。

【例子】如下圖所示,inner join不顯示紅框的數(shù)據(jù),left join會顯示

SELECT * FROM student s
LEFT JOIN score sc on s.id=sc.studentid

SELECT * FROM student s
INNER JOIN score sc on s.id=sc.studentid

【查詢匹配失敗的數(shù)據(jù)】

SELECT * FROM student s
LEFT JOIN score sc on s.id=sc.studentid
WHERE sc.id is null --查詢從表ID為空的數(shù)據(jù),就是聯(lián)表匹配不到的數(shù)據(jù)

2.聯(lián)表條件寫法差異

--聯(lián)表:只要滿足關(guān)聯(lián)關(guān)系,B.IsDeleted是什么則返回什么
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID 

--聯(lián)表不篩選:只要滿足關(guān)聯(lián)關(guān)系,B.IsDeleted≠0 則返回null
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID AND B.IsDeleted=0

--聯(lián)表且篩選:只要滿足關(guān)聯(lián)關(guān)系,B.IsDeleted≠0 則返回null,假如是null則被where過濾掉
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID
WHERE B.IsDeleted=0

--【結(jié)論】數(shù)據(jù)返回多少關(guān)系是:第一種=第二種>第三種
-- 因為第二種是A左聯(lián)篩選后的B表,左外保證A表完整性,和第一種一樣
-- 第三種是連接后再篩選,剔除的數(shù)據(jù)可能包含A表的數(shù)據(jù)

三、Cross Join

計算所有表的笛卡爾積:

總結(jié) 

到此這篇關(guān)于數(shù)據(jù)庫使用之union、union all、各種join的用法區(qū)別解析的文章就介紹到這了,更多相關(guān)union、union all、join用法區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

宁陵县| 仁化县| 柏乡县| 尉氏县| 郧西县| 巴楚县| 宜城市| 鄂伦春自治旗| 芜湖县| 庐江县| 山西省| 阳原县| 广昌县| 马尔康县| 乐安县| 汶川县| 南陵县| 晋中市| 鹤庆县| 屏东市| 阜平县| 康定县| 寻乌县| 宝坻区| 环江| 济宁市| 县级市| 夏邑县| 珠海市| 钟祥市| 修文县| 怀安县| 河西区| 海兴县| 拉萨市| 开原市| 乌兰浩特市| 伊通| 巴彦县| 饶河县| 保山市|