Grazie mille, ora provo le tue soluzioni e vedo quale utilizzare anche per il futuro. Non sapevo che user fosse una parola riservata. Grazie ancora.
Enrico
----- Original Message ----- From: "Chris Mair" chris@1006.org To: "Linux User Group Bozen-Bolzano-Bulsan" lugbz-list@lugbz.org Sent: Sunday, June 20, 2010 7:44:46 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna Subject: Re: [Lugbz-list] Postgresql query
É 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.
_______________________________________________ http://www.lugbz.org/mailman/listinfo/lugbz-list