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

posted @ 2013-05-30 02:04  好记性还真不如烂笔头  阅读(205)  评论(0编辑  收藏  举报