1. 程式人生 > >sql 表的連接 inner join、full join、left join、right join、natural join

sql 表的連接 inner join、full join、left join、right join、natural join

名稱 cnblogs blog select語句 ble 組合 兩個 tro 左右

一、內連接-inner jion :

SELECT * FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2

INNER JOIN 運算可分為以下幾個部分:

部分 說明

table1, table2 記錄被組合的表的名稱。

field1, field2 被聯接的字段的名稱。若它們不是由數字構成的,則這些字段必須為相同的數據類型並包含同類數據,但它們無須具有相同的名稱。

select s.name,m.mark from student s,mark m where s.id=m.studentid
select s.name,m.mark from student s inner join mark m on s.id=m.studentid

二、左連接-left join:

連接通常可以在select語句的from子句或where子句中建立,其語法格式為:

from join_table join_type join_table

[on (join_condition)]

其中join_table指出參與連接操作的表名,連接可以對同一個表操作,也可以對多表操作,對同一個表操作的連接稱為自連接, join_type 為連接類型,可以是left join 或者outer join 或者inner join 。

on (join_condition)用來指連接條件,它由被連接表中的列和比較運算符、邏輯運算符等構成。

左連接是把左邊的表的元組全部選出來:

select s.name,m.mark from student s left join mark m on s.id=m.studentid

三、右連接-right join:

連接通常可以在select語句的from子句或where子句中建立,其語法格式為:

from join_table join_type join_table

[on (join_condition)]

其中join_table指出參與連接操作的表名,連接可以對同一個表操作,也可以對多表操作。對同一個表操作的連接稱為自連接。

on (join_condition)用來指連接條件,它由被連接表中的列和比較運算符、邏輯運算符等構成。

右連接就是把右邊表的數據全部取出,不管左邊的表是否有匹配的數據:

select s.name,m.mark from student s right join mark m on s.id=m.studentid

四、全連接-full join:

使用格式如上面的用法 在上面已經說明

把左右兩個表的數據都取出來,不管是否匹配:

select s.name,m.mark from student s full join mark m on s.id=m.studentid

五、自然連接-NATURAL JOIN

在倆個表中間只有一個共同項 同時也是我們需要匹配的項時

我們可以直接使用自然鏈接

FROM dept_emp d NATURAL JOIN employees e

不需要自己添加匹配條件

sql 表的連接 inner join、full join、left join、right join、natural join