Les réponses de Martin sont concis et intelligent, mais je vais jeter dans deux autres approches qui peuvent être plus faciles à analyser, en fonction de ce que vous êtes habitué à la lecture bien sûr.
Sans faire aucune hypothèse sur votre schéma:
SELECT DISTINCT
course_id
FROM
MyTable AS T1
WHERE
term_id = 1
AND EXISTS (SELECT * FROM MyTable AS T2 WHERE T1.course_Id = T2.course_id AND T2.term_id = 2)
Si, comme je l'attends, {course_id, term_id} est unique, vous pouvez aussi le faire:
SELECT
T1.course_id
FROM
MyTable AS T1
INNER JOIN MyTable AS T2 ON T1.course_id = T2.course_id
WHERE
T1.term_id = 1
AND T2.term_id = 2
À quoi sert RDBMS? –
SQL Server 2005 – speg