我已經創建了一些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