1
我在想,如果我在下面的例子中使用子查詢的解決方案是最優化的方式:何時(不)在JOIN語句中使用子查詢?
SELECT
group_id,
student_completed_lectures.student_id,
count(student_completed_lectures.lecture_id) as completed_lectures_count
FROM group
LEFT JOIN group_students ON (group_students.group_id = group.id AND group_students.year = 2011)
LEFT JOIN student_completed_lectures ON (
student_completed_lectures.student_id = group_students.student_id AND
student_completed_lectures.lecture_id IN (
SELECT lecture_id
FROM lecturesets
WHERE lecturesets.id = group.lectureset_id))
GROUP BY student_completed_lectures.student_id
的想法是算多少講課學生已經從過去已經分配給他的小組完成。
像你的問題不應該使用子查詢 – ajreal
你是什麼意思? – Henno
這不會限制要連接的行數嗎? – Henno