我有三个表(学生,教师和成绩),我想通过索引一些列或其他词创建二级物理结构来优化以下查询。我的问题是:
select * from STUDENT S, FACULTY F
where S.facul=F.facul AND S.grade NOT IN (
select overall from grades G
where overall > 500 and overall < 1900);我不能像"where S.grade <= 500 OR S.grade >= 1900“那样使用,因为在GRADES表中有很多其他的选项,我稍后会用到。因此,从评分表中进行选择是很重要的。
我是一个关于Oracle SQL的初学者,所以请帮助我,并且更具体。
发布于 2016-10-29 23:59:49
这是您的查询(重写了一点):
select *
from STUDENT S join
FACULTY F
on S.facul = F.facul
where S.grade NOT IN (select g.overall
from grades G
where overall > 500 and overall < 1900
);not in真的很没用。您可以将其编写为:
select *
from STUDENT S join
FACULTY F
on S.facul = F.facul
where S.grade <= 500 OR S.grade >= 1900 ;然后,您需要索引。我觉得STUDENT(grade, facul)和FACTULRY(facul)应该行得通。
https://stackoverflow.com/questions/40320865
复制相似问题