天天看點

left join、right join、full join、inner join差別

1、left join(左連結)

作用:以左表為主,查詢左表的全部資料,右表展示與左表相關聯的部分,也就是有交集的部分。

left join、right join、full join、inner join差別

select * from staff s left join company c on s.company_id = c.company_id;

2、right join (右連結)

作用:以右表為主,查詢右表的全部資料,左表展示與右表相關聯的部分,有交集的部分。

left join、right join、full join、inner join差別

select * from staff s right join company c on s.company_id = c.company_id;

3、full join(全連結)

作用:将左右兩張表查詢的結果合并到一塊兒。

left join、right join、full join、inner join差別

select * from staff s full join company c on s.company_id = c.company_id;

4、inner join(内連結)

作用:查詢左右兩張表,展示出有交集的部分,沒有交集的就不展示。

left join、right join、full join、inner join差別

select * from staff s inner join company c on s.company_id = c.company_id;

select * from staff s join company c on s.company_id = c.company_id;

注:1、如果前面啥也不寫隻寫join,就相當于是inner join

2、full join 是Oracle的,MySQL是沒有的,如果MySQL想查合并的話可以用左連結+union+右連結。

這裡的union的作用是将兩個結果集合并成一個結果集。

select * from staff s left join company c on s.company_id = c.company_id

union

select * from staff s right join company c on s.company_id = c.company_id;