Mysql join語句解析

來源:互聯網
上載者:User

標籤:


1. 右串連(right join, right outer join)解釋:以右表(Sys_Employee)為準,而左表(Sys_Department)中的記錄只有當其DepartmentId在右表中存在時才會查詢出來;
  2. 左串連(left join, left outer join)解釋:以左表(Sys_Department)為準,而右表(Sys_Employee)中的記錄只有當其DepartmentId在左表中存在時才會查詢出來;
  3. 全串連(full join, full outer join)解釋:兩個表中DepartmentId的並集(U)記錄;
  4. 內串連(join, inner join)解釋:兩個表中DepartmentId的交集(n)記錄;
  5. 交叉串連(cross join,完全串連)解釋:沒有WHERE子句的交叉串連,它返回被串連的兩個表所有資料行的笛卡爾積,返回結果集合中的資料行數等於第一個表中符合查詢條件的資料行數乘以第二個表中符合查詢條件的資料行數。
  6. 自串連(self join)解釋:使用自串連可以將自身表的一個鏡像當作另一個表來對待;使用自串連的情況:當表中的某一個欄位與這個表中另外欄位的相關時,我們可能用到自串連(自串連的本意就是將一張表看成多張表來做串連)。
 例如:資料庫中有如下一個部門結構表
  下面我們需要將每一個部門自己的名稱和上層業務的名稱都找出來。 如果有兩張表,一個部門表,一個上層業務表,那很好寫SQL語句;但現在部門和上層業務都在一張表中,這種情況用自串連就比較好。 SQL語句及查詢結果如下:
  這裡我們注意到研發部沒有出現在部門列表中,是因為在這裡研發部是最上層業務,它沒有上層業務。如果這時候我們希望研發部也出現在左側,即使它沒有上層業務。我們可以結合左串連SQL語句及查詢結果如下:
 

Mysql join語句解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.