两个表:分别是表A和表B
1.内连接:只返回满足条件的数据
INNER JOIN 实例应用:select * from A INNER JOIN B ON A.A1=B.B1
那么我们会得到这样的数据
2.外连接:
外连接又分左外连接和右外连接(左外连接,只返回满足左表的数据【左表数据全部会显示】;右外连接,只返回满足右表的数据【右表数据全部会显示】)
LEFT JOIN 实例应用: select * from A LEFT JOIN B ON A.A1=B.B1
那么我们会得到这样的数据
RIGHT JOIN实例应用:select * from A RIGHT JOIN B ON A.A1=B.B1
那么我们会得到这样的数据
3.完全连接:返回左表和右表所有数据
FULL JOIN 实例应用: select * from A FULL JOIN B ON A.A1=B.B1
那么我们会得到这样的数据
4.笛卡尔积:又称交叉连接,虽然没有实际意义,但某些场景可能应用到
实例应用:select * from A,B
那么我们会得到这样的数据
5.总结:
- 两表直接笛卡尔积的结果数量是两表的数据量相乘
- 带where条件id相等的笛卡尔积和inner join结果相同,但是inner join效率快一点
- left join:TEST_A表的ID为空时拼接TEST_B表的内容为空,right join则相反
- full join:等于left join和right join的并