两个表:分别是表A和表B

img实例表

1.内连接:只返回满足条件的数据

INNER JOIN 实例应用:select * from A INNER JOIN B ON A.A1=B.B1

那么我们会得到这样的数据

img内连接INNER JOIN

2.外连接:

外连接又分左外连接和右外连接(左外连接,只返回满足左表的数据【左表数据全部会显示】;右外连接,只返回满足右表的数据【右表数据全部会显示】)

LEFT JOIN 实例应用: select * from A LEFT JOIN B ON A.A1=B.B1

那么我们会得到这样的数据

img左外连接LEFT JOIN

RIGHT JOIN实例应用:select * from A RIGHT JOIN B ON A.A1=B.B1

那么我们会得到这样的数据

img右外连接RIGHT JOIN

3.完全连接:返回左表和右表所有数据

FULL JOIN 实例应用: select * from A FULL JOIN B ON A.A1=B.B1

那么我们会得到这样的数据

img完全连接FULL JOIN

4.笛卡尔积:又称交叉连接,虽然没有实际意义,但某些场景可能应用到

实例应用:select * from A,B

那么我们会得到这样的数据

img笛卡尔积(交叉连接)

5.总结:

  • 两表直接笛卡尔积的结果数量是两表的数据量相乘
  • 带where条件id相等的笛卡尔积和inner join结果相同,但是inner join效率快一点
  • left join:TEST_A表的ID为空时拼接TEST_B表的内容为空,right join则相反
  • full join:等于left join和right join的并

版权声明:本文为fengqiang626原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fengqiang626/p/11453339.html