[Pgsql-ayuda] Optimizando PostgreSQL
jota machuca
jotamachuca@hotmail.com
Sat, 12 Jul 2003 13:39:57 -0400
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
la relacion es mas oo menos
/
AD -|---------- PDA
\
entonces... para que un profesor dicte una asignatura , esta tiene que estar
en la tabla AD. para obtener las asignaturas disponibles para un profesor
hago el siguiente weury
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
El queri retorna lo que se pide.. ahora necesito saber si con este query ,
puedo obtener el nombre de la asignatura, el nombre del nivel , y el nombre
del curso...
Algo como
select codigo_asignatura, codigo_nivel, codigo_curso , [OJO ACA ]
a.nombre_asignatura
from ASIGNATURAS_DISPONIBLES, ASIGNATURA A
EXCEPT
select codigo_asignatura, codigo_nivel, codigo_curso
from PROFESOR_DICTA_ASIGNATURA
WHERe rut_profesor = [rut_profesor]
and estado_asign_profesor = true
se que esto esta malo... pero esa es la idea..
Un abrazo
Jota
>From: Alvaro Herrera <alvherre@dcc.uchile.cl>
>To: jota machuca <jotamachuca@hotmail.com>
>CC: pgsql-ayuda@tlali.iztacala.unam.mx
>Subject: Re: [Pgsql-ayuda] Optimizando PostgreSQL
>Date: Sat, 12 Jul 2003 13:22:03 -0400
>
>On Sat, Jul 12, 2003 at 12:29:59PM -0400, jota machuca wrote:
>
> > El problema esta en que las tuplas que retorna son codigos a otras
>tablas
> > referenciales, me explico, me retorna codigo_asignatura, codigo_curso y
> > codigo_nivel, y lo que me gustaria hacer es obtener el
>nombre_asignatura,
> > nombre_curso, y el nombre_nivel , que estan en unas tablas
>referenciales...
>
>Sin las definiciones de las tablas es dificil adivinar, pero es posible
>que puedas hacer con un subselect del tipo:
>
>select * from asignaturas where asignatura_id not in (
> select asignatura-id-que-da-el-profesor
>)
>
>
>Una vez que hayas logrado hacerlo de esta manera, conviertelo a
>WHERE EXISTS (...) siguiendo el FAQ, porque el rendimiento de
>IN (select ...) no es muy bueno en 7.3 (en 7.4 vuela)
>
>--
>Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
>Officer Krupke, what are we to do?
>Gee, officer Krupke, Krup you! (West Side Story, "Gee, Officer Krupke")
_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.yupimsn.com/