由于有的时候数据太长或者数据结构的问题,我们需要在多种表中进行储存信息。这个时候我们在查询的时候就会在多张表中进行查询。有些sql语句的写法就会变得特别的有趣,为了形象表示,我创建了3张表sys_sru sys_mid sys_class 分别储存学生信息,学生的考试成绩,科目信息。
然后开始了解一下两张表连接的方法,where和join on。比如 查询成绩为88的同学名字,这个问题涉及到两张表,如果用where 就是
select a.name from sys_stu a , sys_mid b where a.id =b.stuid and score = 77;
使用 join on连接
select a.name from sys_stu a join sys_mid b on a.id =b.stuid where score = 77;
其中a.id = b.stuid 使用where连接两张表时加在where后面。使用join连接的时候加在on的后面
之后我们来接触一下子查询,子查询就是把sql查询出来的结果作为一个虚拟表进行第二次操作。或者把sql查询出来的结果作为下一个查询的条件的一部分,例如上一个查询成绩为88的同学姓名可以写为。
select name from sys_stu where id in (select stuid from sys_mid where score =77);