Oracle笛卡爾積與連線查詢

2021-08-04 20:18:50 字數 966 閱讀 7776

一、外連線

左外連線

左表字段的全部記錄顯示,右表顯示條件限定的字段記錄,非條件限定的顯示null。(可以加where限定)

select * from  dept d1 left

join emp d2 on d1.deptno = d2.deptno;

select * from  dept d1 left

join emp d2 on d1.deptno = d2.deptno where d2.deptno=3;

左表顯示全部,右表顯示3的字段和on條件字段。

右外連線

與左外連線正好相反

select * from  dept d1 right

join emp d2 on d1.deptno = d2.deptno;

二、內連線

inner join或者直接用join,必須加on過濾,可以加where

select * from  dept d1 inner

join emp d2 on d1.deptno = d2.deptno;

三、關聯關係

交叉連線–cross join類似於笛卡爾積

select * from dept d1 cross

join emp d2;

四、自然連線

natural join

自然連線是在兩張表中尋找那些資料型別和列名都相同的字段,然後自動地將他們連線起來,並返回所有符合條件按的結果

select * from dept d1 natural

join emp d2;

笛卡爾積與連線查詢

連線查詢 左連線 右連線 內連線 笛卡爾乘積 集合特性 確定性 無序性 唯一性 一張表可以看做是乙個集合,每行資料相當於集合的乙個元素 union 時 去掉重複 原理 就是集合元素的唯一性 表中存在完全相同的兩行 是因為 表內部存在 rowid 進行區分 笛卡爾積 如果 a a,b b a b a,...

避免笛卡爾積

在mysql中建立臨時表 create table temptable 2 instanceid numeric 30 celltype varchar 128 enodeb id numeric 30 eutrancell id numeric 30 engine myisam default c...

js笛卡爾積

可以用來模擬路徑,或者標籤的順序。笛卡兒積組合 function descartes list var result var pindex null var tempcount 0 var temp 根據引數列生成指標物件 for var index in list pindex index 單維度...