mysql left join,right join,inner join 实例讲解

表一:班级表,3条记录。

表二:学生表,3条记录,其中一条classid与班级表id对应。classid作为外键关联班级表id


实验如下: 

1.left join(左联接) 

SELECT * FROM class t1 LEFT    JOIN student t2 on  t1.id=t2.classid ; 


结果说明: 
        班级表三条记录全部展示。left join是以t1表(班级表)的记录为基础的,t1可以看成左表,t2可以看成右表,left join是以左表为准的. 
换句话说,左表(班级表)的记录将会全部表示出来,而右表(学生表)只会显示符合搜索条件的记录(例子中为: t1.id=t2.classid). 

t2表记录不足的地方均为NULL. 

2.right join(右联接) 

SELECT * FROM class t1 RIGHT   JOIN student t2 on  t1.id=t2.classid ;


结果说明: 

        学生表三条记录全部展示。仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(t2)为基础的,t1表不足的地方用NULL填充. 

3.inner join(相等联接或内联接) 

SELECT * FROM class t1 INNER   JOIN student t2 on  t1.id=t2.classid ;

等同于以下SQL句: 

SELECT *  FROM class t1,student t2   WHERE t1.id=t2.classid 


结果说明: 
        只展示符合条件的一条记录。很明显,这里只显示出了 t1.id=t2.classid的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. 

猜你喜欢

转载自blog.csdn.net/u014755645/article/details/80782648