Sql语法之join表连接说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lyf844692713/article/details/81484791

                                                                       Sql语法之join表连接说明

//左连接、右连接、内连接我们可以看成是在全连接的基础上过滤条件,这样比较容易理解

  • 全连接Join

       语法:

              select * from A join B

       查询结果:

              A表数据条数*B表数据条数 =查询总条数

  • 内连接:Inner join

       语法:

select * from A inner join B on A.id=B.id

简化写法:

       select * from A ,B where A.id=B.id

on后面的条件:

      即可以是A表的过滤条件,也可以是B表的过滤条件,也可以是A表B表的关联条件

查询结果:

      如果A有10条数据,B有10条数据,name全连接有10*10=100条数据,这100条数据中满足on后面条件的有8条,那么查询结果就有8条数据

  • 左连接Left join

       语法:

              select * from A left outer join B on A.id=B.id

on后面条件:

      只能是A表和B表的关联关系或者是B表的过滤条件。

      如果在on后面写了A表的过滤条件,无效(相当于没写)

查询结果:

      如果A有10条数据,B有10条数据,那么全连接有10*10=100条数据,在这100条数据中,满足条件的有8条数据,而且这8条数据中只包含5条A表的数据,也就是说A表中另外5条数据没有出现,现在left join 以左表为基准,即使没有满足条件的值也需要查出来,所以结果是8+5=13条数据

没有满足条件的这5条数据关于B表的字段都是null

  • 右连接:Right join

       同理左连接

猜你喜欢

转载自blog.csdn.net/lyf844692713/article/details/81484791