目录
转载MySQL 基础知识笔记 第03期:子查询和关联查询 (qq.com)
查出所有数据,以方便跟后续 SQL 结果做对比:
select * from student_info;
select * from student_score;
内连接(inner join)
select a.stu_id,a.stu_name,b.stu_score from student_info a inner join student_score b on a.stu_id= b.stu_id;
可以看出,在内连接中,只有满足条件(两表 id 相等)的数据才会出现。
在练习左连接和右连接之前,为了显示出两者的区别,这里再在每张表中新增一条记录,两张表中的这两条记录 stu_id 不相等。
insert into student_info(stu_id,stu_name) values(4,'liu');
insert into student_score(stu_id,stu_score) values(5,80);
然后再查询两张表的总数据,方便后面对比:
select * from student_info;
select * from student_score;
左连接(left join)
select * from student_info a left join student_score b on a.stu_id = b.stu_id;
可以看出,左连接查询的结果为左表的全部记录,即使右表中没有对应的匹配记录
右连接(right join)
select * from student_info a right join student_score b on a.stu_id = b.stu_id;
可以看出,右连接查询的结果为右表的全部记录,即使左表中没有对应的匹配记录。