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語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 本文主要列舉兩張和三張表來講述多表連線查詢。新...