Mira este pequeño laboratorio
Código SQL:
Ver originalCREATE TABLE alumnos(id_alumno INTEGER PRIMARY KEY,nombre VARCHAR(30));
CREATE TABLE cursos(id_curso INTEGER PRIMARY KEY,nombre VARCHAR(30));
CREATE TABLE alumno_curso(id_alumno INTEGER,id_curso INTEGER,
CONSTRAINT fk_alumnos FOREIGN KEY (id_alumno) REFERENCES alumnos(id_alumno),
CONSTRAINT fk_cursos FOREIGN KEY (id_curso) REFERENCES cursos(id_curso));
INSERT INTO alumnos VALUES(1,'Daniel');
INSERT INTO alumnos VALUES(2,'Monica');
INSERT INTO alumnos VALUES(3,'Julieth');
INSERT INTO cursos VALUES(1,'PHP');
INSERT INTO cursos VALUES(2,'SQL');
INSERT INTO cursos VALUES(3,'JAVA');
INSERT INTO alumno_curso VALUES(1,1);
INSERT INTO alumno_curso VALUES(1,2);
INSERT INTO alumno_curso VALUES(2,2);
INSERT INTO alumno_curso VALUES(3,3);
INSERT INTO alumno_curso VALUES(3,1);
SELECT al.nombre, array_agg(cu.nombre)
FROM alumnos al
INNER JOIN alumno_curso ac
ON al.id_alumno=ac.id_alumno
INNER JOIN cursos cu
ON ac.id_curso=cu.id_curso
GROUP BY al.nombre;
"Daniel";"{PHP,SQL}"
"Julieth";"{JAVA,PHP}"
"Monica";"{SQL}"