inner join on, left join on, right join on的区别与介绍
Table A?
aid?? adate?
1????? a1?
2????? a2?
3????? a3?
TableB?
bid bdate?
1??? b1?
2?? b2?
4??? b4?
兩個表a,b相連接,要取出id相同的字段?
select * from a inner join b on a.aid = b.bid這是僅取出匹配的數據.?
此時的取出的是:?
1 a1 b1?
2 a2 b2?
那么left join 指:?
select * from a left join b on a.aid = b.bid?
首先取出a表中所有數據,然后再加上與a,b匹配的的數據?
此時的取出的是:?
1 a1 b1?
2 a2 b2?
3 a3 空字符?
http://hovertree.com/menu/sql/
同樣的也有right join?
指的是首先取出b表中所有數據,然后再加上與a,b匹配的的數據?
此時的取出的是:?
1 a1 b1?
2 a2 b2?
4 空字符 b4?
LEFT JOIN 或 LEFT OUTER JOIN。?
左向外聯接的結果集包括 LEFT OUTER 子句中指定的左表的所有行,?
而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值?
舉個例子你就能知道了!?
A表(a1,b1,c1)????? B表(a2,b2)?
a1?? b1?? c1?????? a2??? b2?
01?? 數學 95?????? 01??? 張三?
02?? 語文 90?????? 02??? 李四?
03?? 英語 80?????? 04??? 王五?
select A.*,B.* from A?
inner join B on(A.a1=B.a2)?
結果是:?
a1?? b1?? c1?????? a2??? b2?
01?? 數學 95?????? 01??? 張三?
02?? 語文 90?????? 02??? 李四?
select A.*,B.* from A?
left outer join B on(A.a1=B.a2)?
結果是:?
a1?? b1?? c1?????? a2??? b2?
01?? 數學 95?????? 01??? 張三?
02?? 語文 90?????? 02??? 李四?
03?? 英語 80?????? NULL? NULL?
select A.*,B.* from A?
right outer join B on(A.a1=B.a2)?
結果是:?
a1?? b1?? c1?????? a2??? b2?
01?? 數學 95?????? 01??? 張三?
02?? 語文 90?????? 02??? 李四?
NULL NULL NULL???? 04??? 王五?
select A.*,B.* from A?
full outer join B on(A.a1=B.a2)?
結果是:?
a1?? b1?? c1?????? a2??? b2?
01?? 數學 95?????? 01??? 張三?
02?? 語文 90?????? 02??? 李四?
03?? 英語 80?????? NULL? NULL?
NULL NULL NULL???? 04??? 王五
推薦:http://www.cnblogs.com/roucheng/p/3504463.html
轉載于:https://www.cnblogs.com/roucheng/p/sqljoin.html
總結
以上是生活随笔為你收集整理的inner join on, left join on, right join on的区别与介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冲刺第二阶段第八天
- 下一篇: java FileReader/File