理解內連線和外連線

2021-08-30 23:27:05 字數 1475 閱讀 9781

內連線:進行連線的兩個表對應的相匹配的字段完全相同的連線。join

外連線又分為左外連線和右外連線。

左連線即left outer join:

兩個表進行左連線時會返回左邊表中的所有的行和右邊表中與之相匹配的列值沒有相匹配的用空值代替。

右連線即right outer join:

兩個表進行右連線時會返回右邊表中的所有的行和左邊表中與之相匹配的列值沒有相匹配的用空值代替。

我們建立兩張表,students、class並插入測試資料

students

---------------------------

id name classid

1 name1 1

2 name2 null

3 name3 2

---------------------------

class

-----------------------

id name

1 class1

2 class2

3 class3

-----------------------

實驗結果如下:

mysql> select s.name,c.name from students s join class c where s.classid=c.id ; (注:inner join和join一樣)

+-------+-------+

| name | class |

+-------+-------+

| name1 | 1 |

| name3 | 2 |

+-------+-------+

2 rows in set

mysql> select s.name,c.name from students s left join class c on s.classid=c.id ; (left join 和 left outer join 一樣)

+-------+-------+

| name | class |

+-------+-------+

| name1 | 1 |

| name2 | null |

| name3 | 2 |

+-------+-------+

3 rows in set

mysql> select s.name,c.name from students s right join class c on s.classid=c.id ; (right join 和 right outer join 一樣)

+-------+-------+

| name | class |

+-------+-------+

| name1 | 1 |

| name3 | 2 |

| null | 3 |

+-------+-------+

3 rows in set

內連線和外連線

在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...