[Pgsql-ayuda] Optimizando PostgreSQL

Alvaro Herrera alvherre@dcc.uchile.cl
Tue, 15 Jul 2003 14:38:09 -0400


On Sat, Jul 12, 2003 at 01:39:57PM -0400, jota machuca wrote:
> Te cuento...
> 
> La estructura de las tablas es la siguiente
> 
> ASIGNATURAS_DISPONIBLES (AD)
>  (pfk) codigo_asignatura
>  (pfk) codigo_nivel
>  (pfk) codigo_curso
> 
> PROFESOR_DICTA_ASIGNATURA (PDA)
>  (pfk) codigo_asignatura
>  (pfk) codigo_nivel
>  (pfk) codigo_curso
>  (pfk) rut_profesor
>  estado_asign_profesor

Supongo que tienes
ASIGNATURAS
(pk) codigo_asignatura
nombre_asignatura

NIVELES
(pk) codigo_nivel
nombre_nivel

Entonces,
select nombre_asignatura, nombre_nivel
FROM asignaturas JOIN 
(
 select codigo_asignatura, codigo_nivel, codigo_curso
 from ASIGNATURAS_DISPONIBLES
 EXCEPT
 select codigo_asignatura, codigo_nivel, codigo_curso
 from PROFESOR_DICTA_ASIGNATURA
 WHERe rut_profesor = [rut_profesor]
 and estado_asign_profesor = true
) as foo USING (codigo_asignatura)
JOIN niveles USING (codigo_nivel)

O algo por el estilo.

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La grandeza es una experiencia transitoria.  Nunca es consistente.
Depende en gran parte de la imaginación humana creadora de mitos"
(Irulan)