MySql——join

1.Left Outer Join左外連接

設數據庫中有A、B兩表,A和B有共同的交集C,當我們想查詢出A的所有記錄時我們可以使用左外連接:
select <select_list> from TableA A Left Join TableB B on A.key=B.key

1.png

當我們只想查詢出只有A表才有的數據而B表沒有的數據時,即去掉集合C
select <select_list> from TableA A Left Join TableB B on A.key=B.key where B.key is NULL

2.png

2.右外連接

右外連接與左連接是類似的,只是我們把哪個表看為基礎表的區別而已。左外連接將A作為基礎表,右連接我們把B作為基礎表。在A、B表中,查詢出B表的所有記錄
select <select_list> from TableA A Right Join TableB B on A.key=B.key

3.png

只查詢出B表存在而A表沒有的記錄
select <select_list> from TableA A Right Join TableB B on A.key=B.key where B.key is NULL

4.png

3.全連接

當需要查詢出A、B兩表的所有數據時可以使用全鏈接(Full Join)但在Mysql中是不支持Full Join的。但我們可以通過左連接+右連接的聯合達到Full Join的效果,即:
select <select_list> from TableA A Left Join TableB B on A.key=B.key UNION ALL select <select_list> from TableA A Right Join TableB B on A.key=B.key

4.交叉連接

交叉連接(cross join)又稱為笛卡兒積連接(cartesian join)或差乘,如果A和B是兩個集合,它們的交叉連接記為:A x B。即A表中的一條記錄與B表中每一條記錄進行匹配,產生一個新的結果集。如果A中有4條記錄,B中有5條記錄,則會產生20條結果
select <select_listA>,<select_listB> from TableA A CROSS JOIN TableB B

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是SQL數據庫: SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是...
    西貝巴巴閱讀 1,836評論 0 10
  • 50個常用的sql語句 Student(S#,Sname,Sage,Ssex) 學生表 Course(C#,Cna...
    最美的太陽WW閱讀 3,225評論 0 23
  • 5月27日,下午,今天,我利用下午辛勤訓練時間,讓自己完成了一下,比較偉大的任務,那就是5公里,5公里對于普通人來...
    zd0591閱讀 318評論 0 0
  • 詩文: 許永杰 攝影: 馮均倉 2017年4月16日,銅川新區牡丹園春意盎然,百花竟艷,這里舉辦了...
    許永杰閱讀 587評論 0 2
  • 【經典名句分享】 無論外部條件如何變化,幸福其實一直就在每個人身邊。如果能夠抱有感恩之心,認為“我現在是幸福的”,...
    玉_蓮子閱讀 185評論 0 0