1.数据准备
select * from student;
select * from user;
2.要求:查询出student表中所有人员信息及其在user表中的nickname
①使用子查询
select a.*,(select b.nickname from user b where a.`name` = b.`name`) as nickname from student a;
子查询的方式中,针对student表的每条记录都会对user表进行一次查询,需要查询15次,效率比较低。
②使用join优化查询
select a.*,b.nickname from student a left join user b on a.`name` = b.`name`;
3.总结
在数据量相对较大的情况,推荐使用join优化子查询,避免子表的全表查询。