[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)