2012-11-30 161 views
1

我有这个查询,我想优化它。我使用SELECT和子查询,并且如果可能的话我只想使用一个SELECT。SQL查询优化 - 消除子查询

有没有人有任何想法呢?

预先感谢您

SELECT c.* 
FROM course AS c 
JOIN student_course AS sc ON c.id = uc.course_id 
WHERE sc.student_id = '5' AND c.level = (SELECT MAX(level) 
             FROM course 
             JOIN student_course ON c.id = sc.course_id) 
GROUP BY c.category_id 

回答

3
SELECT c.* 
FROM course AS c 
JOIN student_course AS sc 
ON c.id = sc.course_id 
WHERE sc.student_id = '5' 
GROUP BY c.category_id 
having c.level = MAX(sc.level) 
+0

我试过,但它发送空的结果 –