Ответы Мартина лаконичны и умны, но я добавлю еще два подхода, которые, возможно, будет легче проанализировать, в зависимости от того, что вы, конечно, привыкли читать.
Не делая никаких предположений о вашей схеме:
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)
Если, как я ожидаю, {course_id, term_id} уникален, вы также можете сделать это:
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