É possibile fare un doppio JOIN?
Certamente, anche 20-uplo se vuoi.
SELECT course.* FROM course INNER JOIN enrollment, user ON course.id = enrollment.id_course WHERE enrollment.id_user = (SELECT user.id FROM user WHERE user.name = 'pippo');
Devi o usare sintassi ANSI (FROM A INNER JOIN B ON condizione):
select * from course inner join enrollment on (course.id = enrollment.id_course) inner join "user" on (enrollment.id_user = "user".id);
o sintassi breve (FROM A, B WHERE condizione)
select * from course, enrollment, "user" where course.id = enrollment.id and enrollment.id_user = "user".id;
ma non un mix tra le due.
La subselect che tenti di fare in fondo non serve. Come dicevo, puoi tranquillamente fare join multipli.
Ti faccio anche notare che il nome della tua tabella "user" e` una parola riservata e per questo motivo la devi escapare con le virgolette "".
Bye, Chris.