前面一篇學習了內連線,本篇來學習外連線,外連線有左外連線和右外連線。本篇主要連線外連線和內連線的基本使用方法。外連線(outer join),是以某張表為主,取出裡面的所有記錄,然後每條與另外一張表進行連線。不管能不能匹配上條件,最終都會保留,也就是說,能匹配,正確保留;不能匹配,其他表的字段都置空(null)。
外連線分兩種情況,是以某張表為主,有主表。當以左表為主表,這個叫left join,左外連線,我們習慣簡稱左連線;當以右表為主表,這個叫right join,右外連線,同樣,簡稱右連線。
基本語法:左表 left/right join 右表on 左表.欄位=右表.欄位;
左外連線舉例:查詢表my_student和my_class中id相同的學生資訊和課程名稱;
資料設計,在查詢之前,我們有這麼兩個表,表資料如下。
這裡以左表為主表,左連線查詢效果後如下。
當如果主表的某字段為空的時候,匹配後,右表其他字段自動為null。例如下面這樣,我們把張三的c_id更新為null,然後再次進行左連線查詢,看看效果。
發現左表的c_id為空,匹配後右表其他欄位都預設為空。
因為我們主表是左表,右表記錄沒有匹配上,所以字段值為null。
右連線上面介紹了左連線,那麼右連線就簡單了,直接替換,把右表當主表。
上面顯示5條結果是因為,當前右表為主,而且副表有id為null,和主表匹配不上,匹配不上所以不會顯示該條記錄。而且我們可以發現,雖然左連線和右連線有主表區分,但是顯示結果,左表的資料始終在左邊,右表資料顯示在右邊。
其實,左右連線是可以互相轉換的。
join連線查詢之外連線和交叉連線
這個是個重點 join連線的分為內連線,外連線和交叉連線.外連線分左外連線 用到關鍵字left join,使用是以left jion關鍵字左邊的表作為基表並且全部展示,右邊的表和基表關聯的資訊展示 另一種展示方式,用 標示 select from db stu s left join db clas...
mysql連線查詢例項 MySQL連線查詢例項詳解
建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...
mysql連線查詢例項 MySQL連線查詢例項詳解
建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...