一、外連線
左外連線
左表字段的全部記錄顯示,右表顯示條件限定的字段記錄,非條件限定的顯示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 單維度...