mysql表的连接

两个表:分别是表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的并
posted @ 2019-09-03 15:31  626  阅读(2289)  评论(1编辑  收藏  举报