1. 程式人生 > >left join on與直連線的區別

left join on與直連線的區別

一,直連線(有兩種的表達方式)

employee 員工表                                      dept 部門表

id name deptid                                          id    name

1  tom    1                                                  1     研發部

2 jack   3                                                    2     銷售部

3 luck                                                         3     財務部

直連線跟內連線是一樣的,只是叫法不一樣。直連線有兩種表達的方式。只有滿足了連線條件的資料才會顯示出來.

select * from employee e ,dept d where e.deptid=d.id;

select * from employee e  inner join dept d on e.deptid=d.id;

id name deptid         name

1  tom    1                  研發部

2 jack    3                   財務部

二,左連線 left join on(左表資料全部顯示,右表資料如果滿足連線條件就顯示,不滿足就顯示null)

select * from employee e left join dept d on e.deptid=d.id;

d name deptid         name

1  tom    1                  研發部

2 jack    3                   財務部

3 luck                         null

左連線這裡主要注意一點,left join on       後面的連線條件很重要。

  select * from employee e left join dept d on e.deptid=d.id and e.id=1;     

這裡左表資料全部顯示,右表的資料只有滿足條件才顯示,不然為null     

d name deptid         name

1  tom    1                  研發部

2 jack    3                   null

3 luck                         null

select * from employee e left join dept d on e.deptid=d.id  wher e.id=1;     

這裡只顯示滿足條件的資料  ,相當於直連線了。

d name deptid         name

1  tom    1                  研發部

所以要認清   left join on 後面條件是直接on還是where

總結:直連線:只有滿足條件的時候才會顯示,有兩種的寫法,效果是一樣的;

          左連線:左表資料全部顯示,右表資料如果滿足連線條件就顯示,不滿足就顯示null。還需要注意後面加的條件