欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL中的LEFT RIGHT INNER JOIN的区别及学习

程序员文章站 2022-06-30 19:00:25
SQL中的LEFT RIGHT INNER JOIN的区别及学习,仅供参考,如有错误,欢迎纠正。 ......

       多表连接,在工作中是经常遇见的,现在来讲讲LEFT、RIGHT和INNER JOIN的用法,用法会了区别就出来了,写的不专业,只是为了便于理解和学习。

       首先讲INNER JOIN的使用,INNER JOIN是根据ON的条件过滤出两表条件相同的数据,如图的Student表和Course表。

      1、查询“张大大”选修了那些课程(为方便用*查出所有的字段)

SQL中的LEFT RIGHT INNER JOIN的区别及学习

 

 

SELECT *

FROM Student s

INNER JOIN Course c

ON s.课程号=c.课程号

WHERE c.姓名=“张大大”;

分析:ON后面的条件是 s.课程号=c.课程号,根据条件,两个表相同的是“1101”,所以结果就是

SQL中的LEFT RIGHT INNER JOIN的区别及学习

 

   LEFT JOIN左连接,顾名思义,向左连接,左表是主表,查询主表的所有数据,过滤ON条件符合的右表的数据,还是以Student和Course为例。

        2、使用LEFT JOIN查询所有学生的选课情况。

       SELECT * 

       FROM  Student s 

       LEFT JOIN Course c

  ON s.课程号=c.课程号;

分析:首先要明白那个是主表也就是左表,这个靠平时接触的多了就会了,Student表是主表,Course是右表,查询Student表所有的信息,过滤ON条件相同的Course数据,所以结果是:

SQL中的LEFT RIGHT INNER JOIN的区别及学习

 

  RIGHT JOIN 和LEFT JOIN是相反的,右边是主表,LEFT 和 RGITH JOIN 理解一个就都明白了,主要还是找主表。

  3、使用RIGHT JOIN查询课程的选课情况。

  SELECT * 

  FROM  Student s

  RIGHT JOIN Course c

  ON s.课程号=c.课程号;

分析:主表是Course所以放在右边,左边Student则是要过滤的表。所以结果是:

SQL中的LEFT RIGHT INNER JOIN的区别及学习

 结语:我平常用的INNER JOIN和LEFT JION比较多,RIGHT JOIN和LEFT JOIN 一样,只是换换位置的问题。