Re: [Pgsql-ayuda] Optimizando PostgreSQL

From: "jota machuca" <jotamachuca(at)hotmail(dot)com>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Optimizando PostgreSQL
Date: 2003-07-12 17:39:57
Message-ID: BAY1-F113aaz7EjQxzm000050d3@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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(at)dcc(dot)uchile(dot)cl>
>To: jota machuca <jotamachuca(at)hotmail(dot)com>
>CC: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)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/

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jota machuca 2003-07-12 17:41:35 Re: [Pgsql-ayuda] Optimizando PostgreSQL
Previous Message Alvaro Herrera 2003-07-12 17:22:03 Re: [Pgsql-ayuda] Optimizando PostgreSQL