Postgresql query

Ciao lista,
ho installato postgresql e ho inserito 3 tabelle tanto per provare delle query ma ho giá dei problemi per una query che va su tutte e 3 le tabelle.

Ecco le tabelle

user enrollment course

id id id
name id_user name
... id_course ...

Come posso fare una semplice query che mi seleziona tutti i corsi di un utente sapendo il suo campo name?
Ho provato con Join ma mi da sempre sintax error.

Grazie mille,

Enrico

Ciao,

prova a postarmi la query che fai cosi` posso provare a corregertela...

Bye,
Chris.

PS: sintassi JOIN e` qui:
http://www.postgresql.org/docs/8.4/static/queries-table-expressions.html#QUERIES-FROM

É possibile fare un doppio JOIN?

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');

É 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.

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