天天看點

Oracle PL/SQL之聯接

oracle的聯接分如下幾種:

内連接配接(inner join)。

外聯接:

全連接配接(full join)、左連接配接(left join)、右連接配接(right join)。

交叉聯接(cross join)。

外聯接與内聯接不一樣,外連接配接傳回到查詢結果中的不僅包含符合條件的行,還包括左表(左外連接配接),右表(右外連接配接)或者兩個連接配接表(全外連接配接)中的所有不符合條件的資料行。

1.左聯接 (left [outer] join)

左外聯結就是将左表的所有資料分别于右表的每條資料進行連接配接組合,傳回的結果除内連接配接的資料外,還有左表中不符合條件的資料,并在右表的相應列中填上null值。

select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid = f.pb_orgframeid(+);

2.右聯接 (right [outer] join)

右外聯結就是将右表中的所有資料分别與左表的每條資料進行連接配接組合,傳回的結果除了内連接配接的資料外,還有右表中不符合條件的資料,并在左表相應的列中填上null值。

select * from mt_pb_org o,mt_pb_orgframe f where o.pb_orgframeid(+) = f.pb_orgframeid;

3.全外聯接 (full [outer] join)

全外聯接就是将左表的所有資料分别與右表的每條資料進行連接配接組合,傳回的結果除了内連接配接的資料外,還有兩個表中不符合條件的資料,并在左表或者右表的相應列中填上null值。

SQL語句如下:

select * from mt_pb_org o full join mt_pb_orgframe o.pb_orgframeid = f.pb_orgframeid;

4.交叉連接配接(cross join)

交叉連接配接不帶WHERE 子句,它傳回被連接配接的兩個表所有資料行的笛卡爾積,傳回到結果集合中的資料行數等于第一個表中符合查詢條件的資料行數乘以第二個表中符合查詢條件的資料行數。

SQL語句如下:

select * from mt_pb_org o cross join mt_pb_orgframe f;

原文出自:http://pengtingming.blog.163.com/blog/static/13556932008622104628262/