SQL的多表查詢的連線

2021-09-25 01:47:39 字數 2284 閱讀 4386

left join 連線

left join 連線:也稱左連線。假設table1的主鍵id有 1、2、3,table2的
外來鍵id有 3、4、5。用table1的主鍵id和table2的外來鍵id連線,就返回table1

的主鍵id為1、2、3的三行資料。而table2的外來鍵id和table1的主鍵id相同只

有3。所有table2返回的資料是null、null、3.。

總的來說:即使右表中沒有匹配,也從左表返回所有的行。

right join 連線

right join 連線:也稱右連線。假設table1的主鍵id有 1、2、3,table2的

外來鍵id有 3、4、5。用table1的主鍵id和table2的外來鍵id連線,就返回table2

的外來鍵id為3、4、5的三行資料。而table1的主鍵id和table2的外來鍵id相同只

有3。所有table1返回的資料是3、null、null、。

總的來說:即使左表中沒有匹配,也從右表返回所有的行。

full join 連線

full join 連線: 也稱為全連線。假設table1的主鍵id有 1、2、3,table2的

外來鍵id有 3、4、5。用table1的主鍵id和table2的外來鍵id連線,返回的資料是

table1有1、2、3、null、null、null。table2有null、null、null、4、5、6

總的來說:只要其中乙個表存在匹配,則返回行。

現在例項來說明一下:

現在有兩張表(如圖):員工表、獎金表

inner join 連線

select e_employee.employeeid as 員工id,employee as 員工 ,

salaryid as 獎金id ,salary as 獎金

from e_employee inner join e_salary on e_employee.employeeid = e_salary.employeeid

返回結果是:

left join 連線

select e_employee.employeeid as 員工id,employee as 員工 ,

salaryid as 獎金id ,salary as 獎金

from e_employee left join e_salary on e_employee.employeeid = e_salary.employeeid

返回結果是:

right join 連線

select e_employee.employeeid as 員工id,employee as 員工 ,

salaryid as 獎金id ,salary as 獎金

from e_employee right join e_salary on e_employee.employeeid = e_salary.employeeid

返回結果是:

full join 連線

select e_employee.employeeid as 員工id,employee as 員工 ,

salaryid as 獎金id ,salary as 獎金

from e_employee full join e_salary on e_employee.employeeid = e_salary.employeeid

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...

SQL多表連線查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 本文主要列舉兩張和三張表來講述多表連線查詢。新...