zoukankan      html  css  js  c++  java
  • SQL left join right join inner join之间的区别

    在使用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 条件的区别如下:

    •  1、 on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。
    •  2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
  • 相关阅读:
    【Alpha】测试报告
    【Alpha】发布说明
    【Alpha】项目展示
    【Alpha】Scrum Meeting 10
    【Alpha】Scrum Meeting 9
    【Alpha】Scrum Meeting 8
    “北航Clubs”功能规格说明书
    后端技术规格说明书
    前端设计说明书
    Daily Scrumming* 2015.11.3(Day 15)
  • 原文地址:https://www.cnblogs.com/tudoo/p/12483578.html
Copyright © 2011-2022 走看看