表關聯查詢

2021-09-01 06:47:46 字數 2158 閱讀 4821

一、內連線和外連線

內連線用於返回滿足連線條件的記錄;而外連線則是內連線的擴充套件,它不僅會滿足連線條件的記錄,而且還會返回不滿足連線條件的記錄,語法如下:

oracle**

1. selecttable1.column,table2.columnfromtable1[inner|left|right|full]jointable2ontable1.column=table2.column;

inner join表示內連線、left join表示左外連線、right join表示右外連線、full join表示全連線;on用於指定連線條件。

注意:如果使用form內、外連線,則必須使用on操作符指定連線條件;如果使用(+)操作符連線,則必須使用where指定連線條件。

1、內連線

內連線查詢返回滿足條件的所有記錄,預設情況下沒有指定任何連線則為內連線,例如:

oracle**

1. selectt1.name,t2.namefromcip_tempst1innerjoincip_tmpt2ont1.id=t2.id;

2、左外連線

左外連線查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連線條件的連線操作符左邊表的其他行,例如:

oracle**

1. selectt1.name,t2.namefromcip_tempst1leftjoincip_tmpt2ont1.id=t2.id;

3、右外連線

右外連線查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連線條件的連線操作符右邊表的其他行,例如:

oracle**

1. selectt1.name,t2.namefromcip_tempst1rightjoincip_tmpt2ont1.id=t2.id;

4、全連線

全連線查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連線條件的其他行,例如:

oracle**

1. selectt1.name,t2.namefromcip_tempst1fulljoincip_tmpt2ont1.id=t2.id;

5、(+)操作符

在oracle9i之前,當執行外連線時,都是使用連線操作符(+)來完成的,儘管可以使用操作符(+)執行外連線操作,但是oracle9i開始oracle建議使用outer join執行外連線,使用(+)操作符執行外連線的語法如下:

oracle**

1. selecttable1.column,table2.columnfromtable1,table2wheretable1.column(+)=table2.column;

注意:· 當使用(+)操作符執行外連線時,應當將該操作符放在顯示較少行(完全滿足連線條件行)一端。

· (+)操作符只能出現在where子句中,並且不能與outer join語法同時使用。

· 當使用(+)操作符執行外連線時,如果在where語句中包含多個條件,則必須在所有的條件中都包含(+)操作符。

· (+)操作符只能適用於列,而不能適用於表示式。

· (+)操作符不能與or和in操作符一起使用。

· (+)操作符只能用於左外連線和右外連線,不能用於實現完全連線。

(1)、使用(+)操作符執行左外連線

當使用左外連線時,不僅會返回滿足連線條件的所有行,而且還會返回不滿足連線條件的左邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到右邊表的一端,示例如下:

oracle**

1. selectt1.name,t2.namefromcip_tempst1,cip_tmpt2wheret1.id=t2.id(+);

(2)、使用(+)操作符執行右外連線

當使用右外連線時,不僅會返回滿足連線條件的所有行,而且還會返回不滿足連線條件的右邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到左邊表的一端,示例如下:

oracle**

selectt1.name,t2.namefromcip_tempst1,cip_tmpt2wheret1.id(+)=t2.id;

表關聯查詢

一 內連線和外連線 內連線用於返回滿足連線條件的記錄 而外連線則是內連線的擴充套件,它不僅會滿足連線條件的記錄,而且還會返回不滿足連線條件的記錄,語法如下 oracle 1.select table1.column,table2.column from table1 inner left right...

表關聯查詢

一 表關聯查詢 1.表的關聯分兩類 有關係的關聯 無關係的關聯 2.表的有關係的關聯 內關聯 where 指定關聯關係 表1.欄位 表2.欄位 and 表2.欄位 表3.欄位 有關係關聯 通過字段關係,把多張表合併在一起.select s emp.id,first name,name from s ...

MySQL多張表關聯查詢

工作中遇到的問題,其實也不算難,最多算是複雜了一丟丟。有四張表,a,b,c,d 假設 a 商戶表,有欄位code b 商戶普通使用者表,也有字段code ps code是關聯著三張表的重要字段 c 商戶會員表,沒有與其關聯的code,但是有card code欄位與d表中的card code關聯 d ...