真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQL語(yǔ)句中不同的連接JOIN及join的用法是什么-創(chuàng)新互聯(lián)

本篇文章為大家展示了SQL語(yǔ)句中不同的連接JOIN及join的用法是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)站空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,達(dá)州托管服務(wù)器,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國(guó)大陸、港澳臺(tái)以及歐美等多個(gè)國(guó)家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

為了從兩個(gè)表中獲取數(shù)據(jù),我們有時(shí)會(huì)用JOIN將兩個(gè)表連接起來(lái)。通常有以下幾種連接方式:

JOIN or INNER JOIN(內(nèi)連接) : 這兩個(gè)是相同的,要求兩邊表同時(shí)有對(duì)應(yīng)的數(shù)據(jù),返回行,任何一邊缺失數(shù)據(jù)就不顯示。

LEFT JOIN(左外連接):即使右邊的表中沒(méi)有匹配,也從左表返回所有的行。

RIGHT JOIN(右外連接):即使左邊的表中沒(méi)有匹配,也從右表返回所有的行。

FULL JOIN(全外連接):只要其中一個(gè)表中存在匹配就返回行。

如例,有g(shù)rade表(課程號(hào)sn,分?jǐn)?shù)scroe,學(xué)號(hào)id),student表(學(xué)號(hào)id,學(xué)生姓名name),要查詢學(xué)生的姓名和成績(jī)

當(dāng)JOIN或是INNER JOIN時(shí),

SELECT s.name,g.sn,g.score from student as s join grade as g on s.id = g.id

或者

SELECT s.name,g.sn,g.score from student as s inner join grade as g on s.id = g.id

結(jié)果集如下

當(dāng)LEFT JOIN時(shí),

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id

結(jié)果集如下

當(dāng)RIGHT JOIN時(shí),

SELECT s.name,g.sn,g.score from student as s right join grade as g on s.id = g.id

結(jié)果集如下

當(dāng)FULL JOIN時(shí),

SELECT s.name,g.sn,g.score from student as s full join grade as g on s.id = g.id

結(jié)果集如下

注意,兩個(gè)表連接時(shí)用on,在使用left join(right join或full join)時(shí),on與where的區(qū)別是:

on條件是在生成臨時(shí)表時(shí)使用的條件,它不管on中的條件是否為真,都會(huì)返回左邊表中的記錄

where條件是在臨時(shí)表生成好后再對(duì)臨時(shí)表進(jìn)行過(guò)濾的條件,這時(shí)已經(jīng)沒(méi)有l(wèi)eft join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過(guò)濾掉。如下圖,

on條件為黃色部分

SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id and score =90
SELECT s.name,g.sn,g.score from student as s left join grade as g on s.id = g.id where score =90

下面看下SQL中join的各種用法

1.自然連接(natural join)

自然連接將表中具有相同名稱的列自動(dòng)進(jìn)行匹配,自然連接不必指定任何同等連接條件也不能認(rèn)為指定哪些列需要被匹配,自然連接得到的結(jié)果表中,兩表中名稱相同的列只出現(xiàn)一次。

select * from employee natural join department;

2.內(nèi)連接(inner join):產(chǎn)生的結(jié)果是A和B的交集(相同列里面的相同值)

內(nèi)連接查詢能將左表和右表中能關(guān)聯(lián)起來(lái)的數(shù)據(jù)連接后返回,返回的結(jié)果就是兩個(gè)表中所有相匹配的數(shù)據(jù)。

select * from TableA as A inner join TableB B on A.PK = B.PK;select * from TableA as A inner join TableB B on A.PK > B.PK;

3.外連接(outer join)

內(nèi)連接是要顯示兩張表的內(nèi)存,而外連接不要求如此,外連接可以依據(jù)連接表保留左表,右表或全部表的行為而分為左外連接右外連接和全連接。

select * from TableA as A left(right/full) join TableB as B on A.PA = B.PK;

Full Join:產(chǎn)生的結(jié)果是A和B的并集(如果沒(méi)有相同的值會(huì)用null作為值)

Left Join:產(chǎn)生表A的完全集,而B表中匹配的則有值(沒(méi)有匹配的則以null值取代)

Right Join:產(chǎn)生表B的完全集,而A表中匹配的則有值(沒(méi)有匹配的則以null值取代)

4.交叉連接(cross join)

又稱笛卡爾連接,交叉連接返回兩個(gè)集合的笛卡爾積。

select * from TableA cross join TableB;

上述內(nèi)容就是SQL語(yǔ)句中不同的連接JOIN及join的用法是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前文章:SQL語(yǔ)句中不同的連接JOIN及join的用法是什么-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/dpiejs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部