sql 多表查询
多表查询两种格式:
1 。join on
2.where
a.inner join .. on
包括两个表都有的记录
select t1.cols1,t1.cols2,t2.cols1,t2.cols2
from t1
inner join t2
on t1.cols1=t2.cols1
其中:
(t1 inner join t2 on t1.cols1 = t2.cols1)的查询变成了一个中间表,相当于两表根据条件合并之后形成一个表
b.left join ..on
包含左边的全部记录以及右边的符合条件的记录
select t1.cols1,t1.cols2.t2.cols1.t2.cols2
from t1
left join t2
on t1.cols1=t2.cols2
c.right join .. on
包含右边的全部记录以及左边符合条件的记录:
select t1.cols1,t1.cols2,t2.cols1.t2.cols2
from t1
right join t2
on t1.cols1=t2.cols2
查询所有学生的姓名,所修课程的名称和分数在80;
sql1 = select 姓名,课程名,分数
from 学生,课程,成绩
where 学生.学号=成绩.学号
and 成绩.编号=课程.编号
and 分数 > 80;
sql2 = select 姓名,课程名,分数
from 学生表
join (成绩表 join 课程表 on 成绩表.编号=课程表.编号)
on 学生表.编号 = 成绩.学号
where 成绩 > 80