關於外連線和內連線

2021-09-01 13:57:39 字數 1325 閱讀 6202

先說背景:曾經一直認為左連線和左外連線是不一樣的,在學校學習的時候這概念都很模糊,畢業的時候又基本都交給老師了,現在才知道原來左連線是左外連線的簡寫。。。。。下面詳細的介紹一下自己的理解吧。如果有錯,請大家指正。

首先sql的多表連線分為兩大部分:外連線和內連線,外連線又分為左連線,右連線,全外連線 。

左右連線的區別:

a  

left

join

b     的結果集與a表的記錄數同  

a   

right

join

b   的結果集與b表的記錄數同    

a   

left

join

b     等價     b   

right

join

內連線:

a  

inner

join

b  on

a.id

=b.id  結果集是ab兩表的交集

select

*from

a   

inner

join

b   

ona.id

=b.id  等價於

select

*from

a,b   

where

a.id

=b.id 

注意:(以下摘自

在你要使用多個left   join的時候  比如說10個  

我們把10個全都寫成left   join的形式  

然後再sql讓他自動執行一下,它會把最後一次出現的left   join變成left   

outer

join

所以依此推理,最後乙個left   join會以left   

outer

join的形式存在  

當然,不管變不變對結果的顯示沒有任何影響 

cross

join

笛卡爾乘積(所有可能的行對)注意不能使用on,

在交叉連線中沒有on條件子句

inner

join

僅對滿足連線條件的cross中的列

left

outer

join

乙個表滿足條件的行,和另乙個表的所有行

right

outer

join

與left相同,但兩個表的角色互換

full

outer

join

left

outer

和 right

outer中所有行的超集

內連線和外連線

在oracle的sql語句常用的連線有內連線 inner join 外連線 outer join 等,內連線又包括等值連線,非等值連線,自連線 而外連線又分為左連線和右連線。其中預設的是內連線的等值連線。內連線 利用內連線 等值 就可獲取公共部分c,圖中的資料集c.select from a inn...

內連線和外連線

在之前,我對mysql中的內連線和外連線所得出的資料集不是很清楚。這幾天重新溫習了一下 sql的書本,現在的思路應該是很清楚了,現在把自己的理解發出來給大家溫習下。希望和我一樣對 sql的連線語句不太理解的朋友能夠有所幫助。發這麼菜的教程,各位大大們別笑話偶了,呵 d 有兩個表a和表b 表a結構如下...

內連線外連線

內連線 內連線也叫連線,是最早的一種連線,最早被稱為普通連線或自然連線。內連線是從結果中刪除其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失資訊。內連線的語法 select fieldlist from table1 inner join table2 on table1.column tab...