MySQL中連接查詢inner join與left join使用


鏈接查詢其實就是對兩個表記錄作笛卡爾乘積。
若是不指定鏈接條件的話,則會對每行都作笛卡爾乘積,這樣最後返回的結果樹就會是兩個表記錄數的乘積;
若是指定則,則僅對符合列條件的行進行笛卡爾乘積,並返回結果。
在這裏能夠指定兩個列相等,也能夠自定兩個列其餘邏輯關係,並且也能夠指定多個列經過or或者and進行鏈接。mysql

mysql中主要可使用以下幾種join語法
1:join、inner join、cross join;語法:
select * from A inner join B on A.id = B.A_ID; -- 返回匹配的行sql

2:left join;語法:
select * from A left join B on A.id = B.A_ID; -- 即便右表中沒有匹配,也返回左表的全部的行,右表沒匹配的都爲null;.net

3:right join ;語法:
select * from A right join B on A.id = B.A_ID; -- 即便左表中沒有匹配,也返回右表全部的行,左表沒匹配的都爲null。blog

對於join語法有如下幾點須要注意:
1:在mysql中,cross join能夠由join或者inner join實現,這和mysql的實現是有關係的。
對於cross join操做,是僅做笛卡爾積而沒有過濾條件,就是說沒有on關鍵字;對於join與inner join是有on關鍵字的。
當使用join或者inner join而不使用on關鍵字,那麼其做用就和cross join的做用同樣了。
2:在mysql中沒有out join,其實left join至關於left out join,一樣對於right join也是相似。
3:對於mysql中join語法與兩個表使用逗號隔開是同樣的,也就是說:
select * from A join B; = select * from A, B;select

來自:https://blog.csdn.net/ialexanderi/article/details/79052190語法

相關文章
相關標籤/搜索