給個(gè)通俗的解釋吧.
例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
兩個(gè)表a,b相連接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid這是僅取出匹配的數(shù)據(jù).
此時(shí)的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有數(shù)據(jù),然后再加上與a,b匹配的的數(shù)據(jù)
此時(shí)的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同樣的也有right join
指的是首先取出b表中所有數(shù)據(jù),然后再加上與a,b匹配的的數(shù)據(jù)
此時(shí)的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4
“Outer Join
這款的 Join 方式是一般人比較少用到的, 甚至有些 SQL 的管理者也從未用過, 這真是一件悲哀的代表, 因?yàn)樯朴?Outer Join 是可以簡化一些查詢工作的, 先來看看 Outer Join 的語法
Select <要查詢的字段> From
[Outer] Join On
語法中的 Outer 是可以省略的, 例如你可以用 Left Join 或是 Right Join, 在本質(zhì)上, Outer Join 是 inclusive, 叫它做包容性吧! 不同于 Inner Join 的排他性, 因此在 Left Outer Join 的查詢結(jié)果會(huì)包含所有 Left 資料表的資料, 顛倒過來講, Right Outer Join 的查詢就會(huì)包含所有 Right 資料表的資料。”
FULL JOIN 或 FULL OUTER JOIN。
完整外部聯(lián)接返回左表和右表中的所有行。當(dāng)某行在另一個(gè)表中沒有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。如果表之間有匹配行,則整個(gè)結(jié)果集行包含基表的數(shù)據(jù)值
?
union:union默認(rèn)就是去除重復(fù)的,而union ALL 是全部顯示
select A,L = count(*) from 表 where A = 1 group by A
union
select B,L = count(*) from 表 where B = 2 group by B
union
select B,L = count(*) from 表 where C = 3 group by C
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
