我已经创建了一些MSSQL查询,它们都工作得很好,但我认为它可以以更快的方式完成。你能帮我优化它们吗?优化SQL查询
这就是数据库:
Create table Teachers
(TNO char(3) Primary key,
TNAME char(20),
TITLE char(6) check (TITLE in('Prof','PhD','MSc')),
CITY char(12),
SUPNO char(3) REFERENCES Teachers);
Create table Students
(SNO char(3) Primary key,
SNAME char(20),
SYEAR int,
CITY char(20));
Create table Courses
(CNO char(3) Primary key,
CNAME char(20),
STUDYEAR int);
Create table TSC
(TNO char(3) REFERENCES Teachers,
SNO char(3) REFERENCES Students,
CNO char(3) REFERENCES Courses,
HOURS int,
GRADE float,
PRIMARY KEY(TNO,SNO,CNO));
1: 在其研究一年有大部分课程?
问题:它看起来像结果被排序,而我只需要最大元素。
select
top 1 STUDYEAR
from
Courses
group by
STUDYEAR
order by COUNT(*) DESC
2: 显示没有课程,由第1 studyear谁的教师的外海王星天体
问题:我使用子查询只否定一个选择查询
select
TNO
from
Teachers
where
TNO not in (
select distinct
tno
from
Courses, TSC
where tsc.CNO=Courses.CNO and STUDYEAR = 1)
我已经修复它,甚至添加家庭作业标签,如果你说它是相关的。作业是创建一个查询,优化它是我自己的努力。 – gisek 2012-01-15 22:26:17