在数据库中查询是一项基本的操作,多个表之间的查询也是经常会使用到,多个表之间的查询一般会用到left join、right join、inner join查询
有两张这样的表:
学生信息表
学生成绩表
左连接查询:
返回左表的全部行和右表中满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。
select a.*,b.* from student a
left join score b
on a.f_master_id = b.f_student_id;
查询结果:
右连接查询:
返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。
select a.*, b.* from student a
right join score b
on a.f_master_id = b.f_student_id;
查询结果:
内连接查询:
返回右表中和左表中同时满足ON条件的行。也就是两个边的交集
select a.*, b.* from student a
inner join score b
on a.f_master_id = b.f_student_id;
where和on的区别:
on:是在生成临时表时使用的条件,根据on的条件把两张表组合成一张临时表;
where :是在临时表生成好后,再对临时表进行过滤的条件。
aaa