Oracle 中的JOIN

來源:互聯網
上載者:User

1、概述

1.1、所有的join串連,都可以加上類似where a.id='1000'的條件,達到同樣的效果。

1.2、除了cross join不可以加on外,其它join串連都必須加上on關鍵字,後都可加where條件。

1.3、雖然都可以加where條件,但是他們只在標準串連的結果集上尋找where條件。比如左外串連的結果沒有class的三班,所以如果加 where class.id='C003'雖然在表中有,但在左串連結果集中沒有,所以查詢後,是沒有記錄的。

2、執行個體,標準的join串連,(不加where條件的)

2.1、設有表如下:

學生表

      

班級表,對應學生表中的classid

2.2、自串連:join ,inner join

1 --自串連  :只返回兩張表串連列的匹配項。
2 --以下三種查詢結果一樣。
3 select * from student s inner join class c on s.classid=c.id;
4 select * from student s join class c on s.classid=c.id;
5 select * from student s,class c where s.classid=c.id;

自串連結果:

2.3、笛卡兒乘積:cross join

1 --笛卡兒乘積串連 :即不加任何條件,達到 M*N 的結果集。
2 --以下兩種查詢結果一樣。
3 select * from student s cross join class c;
4 select * from student,class;

笛卡爾結果:

注意:如果cross join加上where s.classid=c.id條件,會產生跟自串連一樣的結果:

1 --加上條件,產生跟自串連一樣的結果。
2 select * from student s cross join class c where s.classid=c.id;

自串連結果集的cross join串連結果

2.3、左外串連:left join 

1 --左串連 :列出左邊表全部的,及右邊表合格,不合格以空值代替。
2 --在(+)計算時,哪個帶(+)哪個需要條件符合的,另一個全部的。即放左即右串連,放右即左串連。
3 --以下結果集相同。
4 select * from student s left join class c on s.classid=c.id;
5 select * from student s,class c where s.classid=c.id(+);

左串連結果:

2.4、右外串連:right join

1 --右外串連 :與左串連一樣,列出右邊表全部的,及左邊表合格,不符合條件
2 --的用 空值 替代。
3 --(+)一樣,它的位置與串連相反。
4 select * from student s right join class c on s.classid=c.id;
5 select * from student s,class c where s.classid(+)=c.id;

右串連結果

2.5、全串連:full join

1 --全串連 :產生M+N的結果集,列出兩表全部的,不合格,以空值代替。
2 select * from student s full join class c on s.classid=c.id;

全串連結果集


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.