Oracle 多表連線(SQL 1999標準)

2021-08-17 06:48:15 字數 909 閱讀 3604

1.語法

select    table1.column,table2.column

from    table1  [ 別名1 ]

這一格必須寫的,下面的都是可寫可不寫

[ cross  join  table2 ]

交叉連線,等價於oracle的笛卡爾積

[ natural  join  table2 ]

自然連線,等價於oracle的等值連線

注:見下面1

[ join  table2   using  (列名) ]

using子句,

指定某個或某幾個相同名字和資料型別的列作為連線條件

指定的列不可以加表名

[ join  table2   on  (table1.列名=table2.列名) ]

[ join  table3   on  (table1.列名=table3.列名) ]

on子句,

指定任意連線條件或指定要連線的列

檢索條件寫在where子句裡

注:見下面2

[ left  outer  join  table2 on  (table1.列名=table2.列名)]

左外連線,等價於oracle的右外連線

[ right  outer  join  table2 on  (table1.列名=table2.列名)]

右外連線,等價於oracle的左外連線

[ full  outer  join  table2 on  (table1.列名=table2.列名)]

全外連線

注:自然連線是對兩個表之間相同名字和資料型別的列進行的等值連線,而且若相同名稱的列的資料型別不同會產生錯誤。

因為其連線條件不可控,所以不推薦。

2.on子句裡on後面的()可加可不加,多個連線條件可以用and連線

SQL多表連線

oracle8 select a.b.from a,b where a.id b.id 相當於左聯接 select a.b.from a,b where a.id b.id 相當於右聯接 oracle9 支援以上的寫法,還增加了leftjoin right join等 select a.b.from...

SQL多表連線

1.內連線 查詢兩張表共有部分 等值連線 語法 select from 表a inner join 表b on a.key b.key 2.左連線 把左邊表的內容全部查出,右邊表只查出滿足條件的記錄 語法 select from 表a left join 表b on a.key b.key 3.右連...

Oracle 多表連線

oracle 多表連線 oracle優化器會自動選擇以下三種方式的一種執行表連線,但在資料環境上配合強化選擇合適的方式或強制使用某種方式是sql優化的需要 nested loop 對於被連線的資料子集較小的情況,nested loop連線是個較好的選擇。nested loop就是掃瞄乙個表,每讀到一...