SQL学习多表关联-join

Posted smallstone2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL学习多表关联-join相关的知识,希望对你有一定的参考价值。

  在实际工作中会用到多表联查,此时需要用到关键字JOIN

一、inner join(内连接)

  至少有一个匹配时返回行,只返回两个表中连接字段相等的行

  如:

  select * from ticket

  inner join job

  on ticket.id=job.t_id

  只查询出,ticket.id=job.t_id的数据

二、left join(左连接)

  即使右表中没有匹配,也从左表中返回所有的行

  如:

  select * from ticket

  left join job

  on ticket.id=job.t_id

  不管ticket.id是不是等于job.t_id,首先返回ticket中的所有数据;如果ticket.id=job.t_id时,返回相应的job数据;如果ticket.id!=job.t_id时,对应的job数据显示为null

三、right join(右连接)

  即使左表中没有匹配,也从右表中返回所有的行

  如:

  select * from ticket

  right join job

  on ticket.id=job.t_id

  不管ticket.id是不是等于job.t_id,首先返回job中的所有数据;如果ticket.id=job.t_id时返回相应的ticket数据;如果ticket.id!=job.t_id时,对应的ticket数据显示为null

四、full join(外连接)

  只要其中一个表中存在匹配,则返回行(返回两个表中的行)

  如:

  select * from ticket

  full join job

  on ticket.id=job.t_id

  不管ticket.id是不是等于job.t_id,首先返回ticketjob的所有数据;如果ticket.id=job.t_id时,会在相应的ticket数据后显示job数据;如果ticket.id!=job.t_id时,ticket数据和job数据分两行显示,其对应方的数据分别显示null

以上是关于SQL学习多表关联-join的主要内容,如果未能解决你的问题,请参考以下文章

SQL- join多表关联

SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

sql多表关联查询

Mysql多表left join关联查询全表扫描问题

Elasticsearch es join 多表关联如何设计

MyBatis学习总结——多表关联查询与动态SQL