sql 表的連接 inner join、full join、left join、right join、natural join
一、內連接-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