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

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

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

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

 

 

SELECT *

FROM Student s

INNER JOIN Course c

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

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

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

 

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

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

       SELECT * 

       FROM  Student s 

       LEFT JOIN Course c

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

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

 

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

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

  SELECT * 

  FROM  Student s

  RIGHT JOIN Course c

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

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

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

  

 

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐