cross join 是笛卡儿乘积 就是一张表的行数乘以另一张表的行数。
inner join 只返回两张表连接列的符合条件的记录。
left join 是用左侧表的每一条记录与右侧表的所有记录进行匹配,匹配的就显示出来,不匹配的就以右侧表的填空显示。
right join 与left join相反
full join 返回两张表中的行 left join+right join
以下是实例解释
Employee
ID
|
NAME
|
01
|
Hansen, Ola
|
02
|
Svendson, Tove
|
03
|
Svendson, Stephen
|
04
|
Pettersen, Kari
|
Orders
ID
|
Product
|
01
|
Printer
|
03
|
Table
|
03
|
Chair
|
05
|
Desk
|
Select * from Employee cross join orders(笛卡尔积)结果如下:
ID
|
NAME
|
ID
|
Product
|
01
|
Hansen, Ola
|
01
|
Printer
|
01
|
Hansen, Ola
|
03
|
Table
|
01
|
Hansen, Ola
|
03
|
Chair
|
01
|
Hansen, Ola
|
05
|
Desk
|
02
|
Svendson, Tove
|
01
|
Printer
|
02
|
Svendson, Tove
|
03
|
Table
|
02
|
Svendson, Tove
|
03
|
Chair
|
02
|
Svendson, Tove
|
05
|
Desk
|
03
|
Svendson, Stephen
|
01
|
Printer
|
03
|
Svendson, Stephen
|
03
|
Table
|
03
|
Svendson, Stephen
|
03
|
Chair
|
03
|
Svendson, Stephen
|
05
|
Desk
|
04
|
Pettersen, Kari
|
01
|
Printer
|
04
|
Pettersen, Kari
|
03
|
Table
|
04
|
Pettersen, Kari
|
03
|
Chair
|
04
|
Pettersen, Kari
|
05
|
Desk
|
Select * from Employee e left join Order o on e.id=o.id结果如下图:
ID
|
NAME
|
ID
|
Product
|
01
|
Hansen, Ola
|
01
|
Printer
|
02
|
Svendson, Tove
|
Null
|
Null
|
03
|
Svendson, Stephen
|
03
|
Chair
|
03
|
Svendson, Stephen
|
03
|
Table
|
04
|
Pettersen, Kari
|
Null
|
Null
|
Select * from Employee e right join Order o on e.id=o.id结果如下图:
ID
|
NAME
|
ID
|
Product
|
01
|
Hansen, Ola
|
01
|
Printer
|
03
|
Svendson, Stephen
|
03
|
Table
|
03
|
Svendson, Stephen
|
03
|
Chair
|
null
|
null
|
05
|
Desk
|
转载于:https://blog.51cto.com/liuxiuqing/710971