久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

圖解SQL各種join和union

 L羅樂 2019-03-30

Join語法有很多inner和outer,,還有l(wèi)eft,、right,,有的時(shí)候會真有點(diǎn)分不清楚,。

假設(shè)我們有兩張表,。Table A 是左邊的表,。Table B 是右邊的表,。其各有四條記錄,,其中有兩條記錄name是相同的,,如下所示:讓我們看看不同JOIN的不同

1.INNER JOIN

SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name

2.FULL [OUTER] JOIN 

(1)

SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name

4.RIGHT [OUTER] JOIN

RIGHT OUTERJOIN 是后面的表為基礎(chǔ),與LEFT OUTER JOIN用法類似,。這里不介紹了,。

5.UNION  UNION ALL

UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語句的結(jié)果集。 
請注意,,UNION 內(nèi)部的 SELECT 語句必須擁有相同數(shù)量的列,。列也必須擁有相似的數(shù)據(jù)類型,。同時(shí),每條 SELECT 語句中的列的順序必須相同,。UNION 只選取記錄,,而UNION ALL會列出所有記錄。

(1)SELECT name FROM TableA UNION SELECT name FROM TableB

選取不同值

(2)SELECT name FROM TableA UNION ALL SELECT name FROM TableB

全部列出來

(3)注意:

SELECT * FROM TableA UNION SELECT * FROM TableB

由于 id 1 Pirate   與 id 2 Pirate 并不相同,,不合并

還需要注冊的是我們還有一個(gè)是“交差集” cross join, 這種Join沒有辦法用文式圖表示,,因?yàn)槠渚褪前驯鞟和表B的數(shù)據(jù)進(jìn)行一個(gè)N*M的組合,即笛卡爾積,。表達(dá)式如下:SELECT * FROM TableA CROSS JOIN TableB

這個(gè)笛卡爾乘積會產(chǎn)生 4 x 4 = 16 條記錄,,一般來說,我們很少用到這個(gè)語法,。但是我們得小心,,如果不是使用嵌套的select語句,一般系統(tǒng)都會產(chǎn)生笛卡爾乘積然再做過濾,。這是對于性能來說是非常危險(xiǎn)的,,尤其是表很大的時(shí)候。

  

對技術(shù)感興趣的同學(xué)可進(jìn)群(備注:Java)

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多