图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

1.连接 inner join

内连接是基于连接谓词将俩张表(如A和B)的列组合到一起产生新的结果表,在表中存在至少一个匹配时,INNER JOIN 关键字返回行。  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

下面是一个简单的使用案例  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

以下是运行代码及结果  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

2.左外连接 left join

左外连接Left join关键字会从左表那里返回所有的行,即使是在右表中没有匹配到的行  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

下面是一个简单的案例  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

下面是测试用例  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

3.右外连接 right join

右外连接关键字Right join会从右表那里返回所有的行,即使是在左表中没有匹配到的行  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

下面是一个简单的案例  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

下面是运行及其结果  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

4.全连接 full join

全连接的关键字Full join,只要其中某个表中存在匹配,Full join 就会返回行  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

下面是一个简单的案例  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

以下是运行及结果  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

注意一点 mysql中是不支持Full join 的但是orcal等数据库是支持的。  
如果在mysql要使用Full join就会报以下错误  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

解决办法:同时使用左连接和右连接 

以下是一个简单的例子图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)

5.交叉连接 cross join

交叉连接一般使用的比较少,交叉连接又称笛卡尔连接或者叉乘连接,如果,A和B是俩个集合,他们的交叉连接就是A*B 

以下是一个简单的案例  
图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)