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

主頁 > 知識庫 > SQL中JOIN和UNION區別、用法及示例介紹

SQL中JOIN和UNION區別、用法及示例介紹

熱門標簽:北京辦理400電話多少 智能語音外呼系統哪個牌子好 西安青牛防封電銷卡 重慶防封電銷機器人供應商 山西語音外呼系統價格 南京電銷外呼系統運營商 溫州語音外呼系統代理 400電話申請需要開戶費嗎 威海智能語音外呼系統
1.JOIN和UNION區別

join 是兩張表做交連后里面條件相同的部分記錄產生一個記錄集,
union是產生的兩個記錄集(字段要一樣的)并在一起,成為一個新的記錄集 。

JOIN用于按照ON條件聯接兩個表,主要有四種:
INNER JOIN:內部聯接兩個表中的記錄,僅當至少有一個同屬于兩表的行符合聯接條件時,內聯接才返回行。我理解的是只要記錄不符合ON條件,就不會顯示在結果集內。
LEFT JOIN / LEFT OUTER JOIN:外部聯接兩個表中的記錄,并包含左表中的全部記錄。如果左表的某記錄在右表中沒有匹配記錄,則在相關聯的結果集中右表的所有選擇列表列均為空值。理解為即使不符合ON條件,左表中的記錄也全部顯示出來,且結果集中該類記錄的右表字段為空值。
RIGHT JOIN / RIGHT OUTER JOIN:外部聯接兩個表中的記錄,并包含右表中的全部記錄。簡單說就是和LEFT JOIN反過來。
FULL JOIN / FULL OUTER JOIN:完整外部聯接返回左表和右表中的所有行。就是LEFT JOIN和RIGHT JOIN和合并,左右兩表的數據都全部顯示。

JOIN的基本語法:
Select table1.* FROM table1 JOIN table2 ON table1.id=table2.id

sql寫法

內連接inner join:
復制代碼 代碼如下:

SELECT msp.name, party.name
FROM msp JOIN party ON party=code


復制代碼 代碼如下:

SELECT msp.name, party.name
FROM msp inner JOIN party ON party=code


左連接left join :
復制代碼 代碼如下:

SELECT msp.name, party.name
FROM msp LEFT JOIN party ON party=code

右連接right join :
復制代碼 代碼如下:

SELECT msp.name, party.name
FROM msp RIGHT JOIN party ON msp.party=party.code

全連接(full join):
復制代碼 代碼如下:

SELECT msp.name, party.name
FROM msp FULL JOIN party ON msp.party=party.code


UNION運算符

將兩個或更多查詢的結果集組合為單個結果集,該結果集包含聯合查詢中的所有查詢的全部行。UNION的結果集列名與UNION運算符中第一個Select語句的結果集的列名相同。另一個Select語句的結果集列名將被忽略。
其中兩種不同的用法是UNION和UNION ALL,區別在于UNION從結果集中刪除重復的行。如果使用UNION ALL 將包含所有行并且將不刪除重復的行。

UNION和UNION ALL的區別:

union 檢查重復
union all 不做檢查
比如 select 'a' union select 'a' 輸出就是一行 a
比如 select 'a' union all select 'a' 輸出就是兩行 a

2. 通過下面的例子,可以清晰的看出和理解2者的區別
實例1 典型的二表連接演示

假定有兩個表Table1和Table2,其包含的列和數據分別如表1.1和表1.2所示。

表1.1 Table1數據庫表

ColumnA

ColumnB

ColumnC

X1

Y1

Z1

X2

Y2

Z2

X3

Y3

Z3

 

表1.2 Table2數據庫表

 

ColumnA

ColumnD

ColumnE

X1

D1

E1

X2

D2

E2

X3

D3

E3

 

Table1和Table2表共有的列為ColumnA,如果通過ColumnA列的值連接Table1和Table2兩個表,即連接條件為Table1.ColumnA=Table2.ColumnA,此時得到的連接結果如表1.3所示。

表1.3 連接Table1和Table2表

ColumnA

ColumnB

ColumnC

ColumnD

ColumnE

X1

Y1

Z1

D1

E1

X2

Y2

Z2

D2

E2

X3

Y3

Z3

D3

E3

上述連接過程的實現代碼可表示如下:SELECT * FROM Table1 JOIN Table2 ON Table1.ColumnA=Table2.columnA

實例2 典型的二表記錄的UNION運算

假定有兩個表Table3和Table4,其包含的列和數據分別如表2.1和表2.2所示。

表2.1 Table3數據庫表

 

ColumnA

ColumnB

ColumnC

X1

Y1

Z1

X2

Y2

Z2

X3

Y3

Z3

 

表2.2 Table4數據庫表、

 

ColumnA

ColumnD

ColumnE

X4

Y4

Z4

X5

Y5

Z5

X6

Y6

Z6

 

Table3表和Table4表具有相同的列結構,列數也要相同,列名可以不同,以第一個表的列名為新表的列名,因此可以使用UNION運算符連接兩個表的記錄集,得到的連接結果如表2.3所示。

表2.3 使用UNION連接Table3表和Table4表的記錄

 

ColumnA

ColumnB

ColumnC

X1

Y1

Z1

X2

Y2

Z2

X3

Y3

Z3

X4

Y4

Z4

X5

Y5

Z5

X6

Y6

Z6

上述連接過程的實現代碼可表示如下:SELECT * FROM Table3 UNION SELECT *FROM Table4

對比實例1和實例2,不難發現二者的區別。

您可能感興趣的文章:
  • 數據庫中的左連接(left join)和右連接(right join)區別
  • 數據庫Left join , Right Join, Inner Join 的相關內容,非常實用
  • CI框架數據庫查詢之join用法分析
  • sql join on 用法
  • 淺析Mysql Join語法以及性能優化
  • MySQL JOIN之完全用法
  • sql 左連接和右連接的使用技巧(left join and right join)
  • SQL的Join使用圖解教程
  • 一篇文章帶你了解數據庫中JOIN的用法

標簽:黃山 河源 中衛 新余 濟寧 宜春 貸款群呼 金昌

巨人網絡通訊聲明:本文標題《SQL中JOIN和UNION區別、用法及示例介紹》,本文關鍵詞  SQL,中,JOIN,和,UNION,區別,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL中JOIN和UNION區別、用法及示例介紹》相關的同類信息!
  • 本頁收集關于SQL中JOIN和UNION區別、用法及示例介紹的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 宜兰县| 临海市| 高陵县| 镇远县| 额尔古纳市| 泸州市| 麦盖提县| 梁平县| 泰顺县| 阿合奇县| 清远市| 巴彦淖尔市| 漳浦县| 南陵县| 东莞市| 涟源市| 博爱县| 鄂托克旗| 建始县| 新田县| 福鼎市| 宁晋县| 凯里市| 丹东市| 濮阳市| 拜城县| 余干县| 清镇市| 阿巴嘎旗| 永顺县| 康马县| 股票| 阳朔县| 堆龙德庆县| 上饶县| 武川县| 新营市| 铜川市| 百色市| 武清区| 钦州市|