欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

數(shù)據(jù)庫的左連接,右連接,自連接,內(nèi)連接,外連接的區(qū)別

從語法層面上看,

全外連接full outer join

左連接是left outer join

右連接是right outer join

內(nèi)連接是inner join

自連接是自身表與自身表進行的左右連接,需要注意的是并沒有左內(nèi)連接和右內(nèi)連接。

左外連接

select * from A left outer join B on A.id = B.id;

左外連接是把左邊作為基表,在右表中找到和左表匹配的數(shù)據(jù)組合在一塊,如果沒找到的話就是空,總之左表的數(shù)據(jù)會全部展示出來。

結(jié)果是返回左右表交集和左表全數(shù)據(jù)。

右外連接

select * from C right outer join D on C.id = D.id;

右外連接則剛好和左外連接相反,是把右表作為基表。在實際開發(fā)中實際上用到的右連接基本上可以改寫成左連接的形式,比如下列的左右連接其實效果是一致的。

select * from A left outer join B on A.id = B.id;

select * from B right outer join A on A.id = B.id;

結(jié)果是返回左右表交集和右表全數(shù)據(jù)。

全外連接

select * from A full outer join B on A.id=B.id;

全外連接是會把左外連接和右外連接的結(jié)果整合到一起并去重。

另外,有的數(shù)據(jù)庫關(guān)于外連接的outer關(guān)鍵字可以省略不寫,但有的不能省略,如下

select * from A left join B on A.id = B.id;

select * from A right join B on A.id = B.id;

select * from A full join B on A.id = B.id;

結(jié)果是返回左右表并集。

內(nèi)連接

內(nèi)連接的具體語法如下,

select * from A inner join B on A.id=B.id;

顧名思義,內(nèi)連接只會返回同時在A和B中滿足條件,在這里也就是id在A和B中都存在并且id相同的數(shù)據(jù),這里的inner有時候也可省略。

結(jié)果是返回左右表交集。

自連接

自連接并不是一種連接結(jié)構(gòu),而是一種邏輯上的稱呼,自連接可以使用外連接也可以使用內(nèi)連接。比如對表A和A自身進行內(nèi)連接或者外連接篩選出想要的數(shù)據(jù)。一般大多數(shù)情況都是表A和A以外的表,但一些業(yè)務(wù)情況下可能會出現(xiàn)與本表連接的情況。常見的例子比如員工表,如下,張三是公司老大沒有領(lǐng)導(dǎo),李四和王五的manager_id 是1,代表張三是李四和王五的直屬領(lǐng)導(dǎo),而李四是趙六的領(lǐng)導(dǎo),王五是甲七的領(lǐng)導(dǎo)。

+------+------+------------+
| id   | name | manager_id |
+------+------+------------+
|    1 | 張三 |          0 |
|    2 | 李四 |          1 |
|    3 | 王五 |          1 |
|    4 | 趙六 |          2 |
|    5 | 甲七 |          3 |
+------+------+------------+

此時可能就會有需求,比如查詢趙六的領(lǐng)導(dǎo)是誰?就會用到自連接,語法示例如下

select B.name from emp A join emp B on A.manager_id=B.id where A.name='趙六';

查出來結(jié)果如下

+------+
| name |
+------+
| 李四 |
+------+

總結(jié)表格

連接類型語法結(jié)果特點
內(nèi)連接 SELECT * FROM A INNER JOIN B 左右表交集 只返回匹配的行
左外連接 SELECT * FROM A LEFT JOIN B 左表全數(shù)據(jù) + 左右表交集 左表為主,右表無匹配時用 NULL
右外連接 SELECT * FROM A RIGHT JOIN B 右表全數(shù)據(jù) + 左右表交集 右表為主,左表無匹配時用 NULL
全外連接 SELECT * FROM A FULL JOIN B 左表全數(shù)據(jù) + 右表全數(shù)據(jù) - 重復(fù)行 左表和右表的并集
自連接 SELECT * FROM A A1 JOIN A A2 表內(nèi)關(guān)聯(lián)數(shù)據(jù) 同一張表與自身連接
#如果校招重來我最想改變的是##實習(xí)要如何選擇和準(zhǔn)備?##牛友打假中心#
全部評論

相關(guān)推薦

評論
點贊
1
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)