成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

SQL中的連接查詢詳解

瀏覽:5日期:2023-03-06 14:25:15

Join 連接 (SQL Join)

SQL Join (連接) 是利用不同數據表之間字段的關連性來結合多數據表之檢索。

SQL Join是結合多個數據表而組成一抽象的暫時性數據表以供數據查詢,在原各數據表中之紀錄及結構皆不會因此連接查詢而改變。

這是一個客戶數據表「customers」:

C_Id

Name

City

Address

Phone

1

張一

臺北市

XX路100號

02-12345678

2

王二

新竹縣

YY路200號

03-12345678

3

李三

高雄縣

ZZ路300號

07-12345678

而這是產品訂單的數據表「orders」:

O_Id

OrderNo

C_Id

1

2572

3

2

7375

3

3

7520

1

4

1054

1

5

1257

5

其中,C_Id 是客戶數據表中的主鍵 (Primary Key) 字段,我們怎么將這兩張不同的數據表依相關字段來作個連接結合以便查詢呢?這就是接下來的主題 Join!

SQL 的 Join 查詢有哪幾種類型?

  • Inner Join : 內部連接

  • LEFT (OUTER) JOIN : 左外部連接

  • RIGHT (OUTER) JOIN : 右外部連接

  • FULL (OUTER) JOIN : 全部外部連接

  • CROSS JOIN : 交叉連接

  • NATURAL JOIN : 自然連接

INNER JOIN - 內部連接

INNER JOIN (內部連接) 為等值連接,必需指定等值連接的條件,而查詢結果只會返回符合連接條件的數據。

INNER JOIN 語法 (SQL INNER JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

SELECT table_column1, table_column2···
FROM table_name1
INNER JOIN table_name2
USING (column_name);

INNER JOIN 查詢實例 (Example)

現在我們想列出所有客戶的訂單編號數據,我們可以作一個 INNER JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
INNER JOIN orders
ON customers.C_Id=orders.C_Id;

其中用點號連接之「XXX.YYY」表示XXX數據表中的YYY字段。

查詢結果如下:

Name

Order_No

李三

2572

李三

7375

張一

7520

張一

1054

查詢結果只會返回符合連接條件的數據!

LEFT JOIN - 左外部連接

LEFT JOIN 可以用來建立左外部連接,查詢的 SQL 敘述句 LEFT JOIN 左側數據表 (table_name1) 的所有記錄都會加入到查詢結果中,即使右側數據表 (table_name2) 中的連接字段沒有符合的值也一樣。

LEFT JOIN 語法 (SQL LEFT JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

有些數據庫的語法會是LEFT OUTER JOIN。

LEFT JOIN 查詢實例 (Example)

現在我們想查詢所有客戶與其訂單狀況的數據,我們可以作一個 LEFT JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
LEFT JOIN orders
ON customers.C_Id=orders.C_Id;

查詢結果如下:

Name

Order_No

張一

7520

張一

1054

王二

 

李三

2572

李三

7375

LEFT JOIN會返回左側數據表中所有數據列,就算沒有符合連接條件,而右側數據表中如果沒有匹配的數據值就會顯示為「NULL」。

RIGHT JOIN - 右外部連接

相對于LEFT JOIN,RIGHT JOIN 可以用來建立右外部連接,查詢的 SQL 敘述句 RIGHT JOIN 右側數據表 (table_name2) 的所有記錄都會加入到查詢結果中,即使左側數據表 (table_name2) 中的連接字段沒有符合的值也一樣。

RIGHT JOIN 語法 (SQL RIGHT JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

有些數據庫的語法會是RIGHT OUTER JOIN。

RIGHT JOIN 查詢實例 (Example)

現在我們想查詢所有訂單與相應的客戶之資料,我們可以作一個 RIGHT JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
RIGHT JOIN orders
ON customers.C_Id=orders.C_Id;

查詢結果如下:

Name

Order_No

李三

2572

李三

7375

張一

7520

張一

1054

 

1257

RIGHT JOIN會返回右側數據表中所有數據列,就算是沒有符合連接條件,而左側數據表中如果沒有匹配的數據值就會顯示為「NULL」。

FULL JOIN - 全部外部連接

FULL JOIN 即為 LEFT JOIN 與 RIGHT JOIN 的聯集,它會返回左右數據表中所有的紀錄,不論是否符合連接條件。

FULL JOIN 語法 (SQL FULL JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

FULL JOIN 查詢實例 (Example)

我們來作一個 FULL JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
FULL JOIN orders
ON customers.C_Id=orders.C_Id;

查詢結果如下:

Name

Order_No

李三

2572

李三

7375

張一

7520

張一

1054

 

1257

王二

 

MySQL數據庫中沒有FULL JOIN,但是您可以用UNION來模擬。

CROSS JOIN - 交叉連接

交叉連接為兩個數據表間的笛卡兒乘積 (Cartesian product),兩個數據表在結合時,不指定任何條件,即將兩個數據表中所有的可能排列組合出來,以下例而言 CROSS JOIN 出來的結果資料列數為 3×5=15 筆,因此,當有WHERE、ON、USING條件時不建議使用。

CROSS JOIN 語法 (SQL CROSS JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
CROSS JOIN table_name2;

SELECT table_column1, table_column2···
FROM table_name1, table_name2;

SELECT table_column1, table_column2···
FROM table_name1
JOIN table_name2;

FULL JOIN 查詢實例 (Example)

這是一個客戶數據表「customers」:

C_Id

Name

City

Address

Phone

1

張一

臺北市

XX路100號

02-12345678

2

王二

新竹縣

YY路200號

03-12345678

3

李三

高雄縣

ZZ路300號

07-12345678

而這是產品訂單的數據表「orders」:

O_Id

Order_No

C_Id

1

2572

3

2

7375

3

3

7520

1

4

1054

1

5

1257

5

我們來作一個 CROSS JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
CROSS JOIN orders;

查詢結果如下:

Name

Order_No

張一

2572

王二

2572

李三

2572

張一

7375

王二

7375

李三

7375

張一

7520

王二

7520

李三

7520

張一

1054

王二

1054

李三

1054

張一

1257

王二

1257

李三

1257

NATURAL JOIN - 自然連接

自然連接有 NATURAL JOIN、NATURAL LEFT JOIN、NATURAL RIGHT JOIN,兩個表格在進行 JOIN 時,加上 NATURAL 這個關鍵詞之后,兩數據表之間同名的字段會被自動結合在一起。

NATURAL JOIN 語法 (SQL NATURAL JOIN Syntax)

SELECT table_column1, table_column2···
FROM table_name1
NATURAL JOIN table_name2;

NATURAL JOIN 查詢實例 (Example)

這是一個客戶數據表「customers」:

C_Id

Name

City

Address

Phone

1

張一

臺北市

XX路100號

02-12345678

2

王二

新竹縣

YY路200號

03-12345678

3

李三

高雄縣

ZZ路300號

07-12345678

而這是產品訂單的數據表「orders」:

O_Id

Order_No

C_Id

1

2572

3

2

7375

3

3

7520

1

4

1054

1

5

1257

5

現在我們想列出所有客戶的訂單編號數據,我們可以作一個 NATURAL JOIN 查詢:

SELECT customers.Name, orders.Order_No
FROM customers
NATURAL JOIN orders;

查詢結果如下:

Name

Order_No

李三

2572

李三

7375

張一

7520

張一

1054

注意到了嗎?返回結果同等于下面這個INNER JOIN查詢:

SELECT customers.Name, orders.Order_No
FROM customers
INNER JOIN orders
ON customers.C_Id=orders.C_Id;

到此這篇關于SQL連接查詢的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

標簽: MsSQL
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩和欧美一区二区三区| 日韩黄色小视频| 一区二区三区丝袜| 91在线观看视频| 制服丝袜成人动漫| 视频精品一区二区| 国产精品日本一区二区| 亚洲日本在线视频观看| 亚洲激情一区二区| 亚洲国产精品激情在线观看 | 国产精品久久久久久久久久免费看 | 色爱区综合激月婷婷| 亚洲最大成人综合| 在线一区免费观看| 亚洲黄色录像片| 亚洲开发第一视频在线播放| 中文字幕日韩精品一区| 韩国在线视频一区| 国产精品丝袜91| 黑人巨大精品欧美一区二区小视频| 国产午夜精品久久久久久久| 91免费看`日韩一区二区| 欧美精品一区二区在线播放| 成人av电影观看| 国产精品国产a级| 夜夜爽夜夜爽精品视频| 91女人视频在线观看| 欧美一二三区在线| 久久精品国产色蜜蜜麻豆| 日本韩国一区二区三区视频| 香蕉久久一区二区不卡无毒影院 | 亚洲第一福利视频在线| 国产精品日韩二区| 亚洲成人一二三| 久久久久se| 久久99久久99| 91精品免费在线观看| 成人午夜又粗又硬又大| 精品国产一区二区三区av性色 | 成人听书哪个软件好| 欧美电视剧在线观看完整版| 丝袜美腿一区二区三区| 综合亚洲深深色噜噜狠狠网站| 99精品欧美一区二区三区小说 | 久久精选视频| 免费不卡在线观看| 欧美福利一区二区| eeuss国产一区二区三区| 欧美国产1区2区| 狠狠色噜噜狠狠色综合久| 亚洲欧美色图小说| 久久先锋资源| 久久精品国产一区二区三区免费看| 欧美日韩国产综合一区二区| 国产白丝精品91爽爽久久| 欧美videossexotv100| 欧美视频一区二区三区在线观看| 日韩影院精彩在线| 欧美日韩在线播放三区四区| 国产成人亚洲综合a∨猫咪| 久久这里只有精品首页| 韩日在线一区| 亚洲成人自拍偷拍| 91超碰这里只有精品国产| 成人精品视频一区二区三区 | 亚洲综合精品| 精品一区在线看| 亚洲精品在线免费播放| 悠悠资源网久久精品| 日日摸夜夜添夜夜添国产精品| 欧美伦理影视网| 99久久er热在这里只有精品15 | 黄色日韩网站视频| 久久综合精品国产一区二区三区| 欧美午夜精品| 日本三级韩国三级欧美三级| 91首页免费视频| 色素色在线综合| 精品一区二区在线观看| 久久久久97国产精华液好用吗| 99在线精品免费视频九九视| 免费的成人av| 精品国产网站在线观看| 日韩一级在线| 狠狠色丁香婷综合久久| 国产精品美女www爽爽爽| 色诱视频网站一区| 北岛玲一区二区三区四区| 国产精品久久久久aaaa| 亚洲欧美国产精品桃花| 国产一区二区毛片| 日韩码欧中文字| 欧美日韩亚洲另类| 亚洲网站啪啪| 国产伦精一区二区三区| 日韩一区在线看| 欧美日韩中字一区| 久久综合九色综合久99| 国产另类ts人妖一区二区| 中文字幕第一页久久| 在线视频欧美区| 欧美另类高清视频在线| 奇米影视一区二区三区| 久久久亚洲高清| 久久福利电影| 欧美承认网站| 精品在线免费视频| 亚洲三级电影网站| 日韩欧美国产三级| 香蕉成人久久| 午夜久久影院| 激情文学综合丁香| 亚洲精品欧美激情| 日韩欧美123| 色综合久久久久综合| 欧美色一级片| 国产揄拍国内精品对白| 一区二区三区精品在线观看| 欧美一区二区免费观在线| 国产色综合网| 丁香网亚洲国际| 日本网站在线观看一区二区三区| 国产精品沙发午睡系列990531| 欧美精品xxxxbbbb| 新狼窝色av性久久久久久| 91在线精品秘密一区二区| 久久国产三级精品| 亚洲精品免费电影| 久久久精品国产免大香伊| 欧美性大战xxxxx久久久| 亚洲欧洲一区二区在线观看| 成人免费av在线| 麻豆专区一区二区三区四区五区| 国产精品成人在线观看| 欧美成人在线直播| 在线免费视频一区二区| 亚洲一区中文日韩| 亚洲精选91| 成人免费视频免费观看| 视频一区中文字幕| 中文字幕色av一区二区三区| 精品va天堂亚洲国产| 欧美日韩成人高清| 久久精品国产第一区二区三区最新章节 | 久久精品国产第一区二区三区| 亚洲综合男人的天堂| 中文字幕一区二区在线播放| 久久免费视频一区| 91精品在线观看入口| 91成人在线精品| 一本久道综合久久精品| 亚洲福利一区二区| 中文字幕视频一区| 欧美国产在线观看| 久久嫩草精品久久久精品| 欧美二区在线观看| 欧美吻胸吃奶大尺度电影| 国产精品嫩草99av在线| 伊人激情综合| 色综合一个色综合亚洲| 国产99久久久国产精品免费看| 久久69国产一区二区蜜臀| 丝袜亚洲另类欧美| 亚洲影视资源网| 亚洲乱码一区二区三区在线观看| 欧美激情一区在线观看| 久久品道一品道久久精品| 日韩欧美不卡在线观看视频| 在线播放欧美女士性生活| 欧美吞精做爰啪啪高潮| 日本乱人伦一区| 在线免费视频一区二区| 欧美在线看片a免费观看| 色素色在线综合| 欧美综合亚洲图片综合区| 日本精品视频一区二区| 在线观看成人免费视频| 欧美日韩在线直播| 欧美精品aⅴ在线视频| 欧美日韩国产电影| 欧美精品1区2区3区| 欧美一级欧美三级在线观看| 91精品国产综合久久精品麻豆| 欧美精品久久久久久久多人混战| 欧美三级中文字幕在线观看| 欧美亚洲国产一区二区三区va | 国产午夜精品一区二区三区视频| 久久综合九色综合欧美亚洲| 精品久久久久99| 久久久久久一二三区| 国产蜜臀av在线一区二区三区| 欧美激情在线看| 1024成人网| 亚洲综合小说图片| 午夜不卡av在线| 九色|91porny| 成人深夜在线观看| 欧美日韩国产成人精品| 亚洲开发第一视频在线播放| 亚洲一区二区三区涩|