SQL left join right join inner join之间的区别

时间:2020-03-12 23:31:15   收藏:0   阅读:97

在使用SpringDataJpa的时候,有时候查询非常慢,这时候可以通过添加@Query注解,使用原生SQL语句进行查询  通常返回类型是List<Object[]> 

在一对多的时候,可以通过left join right join inner join查询

但三者之间是有区别的

left join(左联接)   返回左表全部行和右表联结字段相等的行,如果右表没有匹配,则右表相对应的字段为NULL 技术分享图片

 技术分享图片

right join(右联接) 同left join,只是反过来而已

技术分享图片

inner join(内连接) 返回两个表中联结字段相等的记录  :INNER JOIN 与 JOIN 是相同的

技术分享图片

 

 

 

 

举例:左表:table1  右表 :table2

技术分享图片    技术分享图片

 

 

 

LEFT JOIN:

SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id;

技术分享图片

 

 

 

RIGHT JOIN:

SELECT * FROM table1 RIGHT JOIN table2 ON table1.id=table2.id;

技术分享图片

 

 

INNER JOIN:

SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id;

技术分享图片

 

在使用 join 时,on 和 where 条件的区别如下:

 

原文:https://www.cnblogs.com/tudoo/p/12483578.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!