Necesito ayuda para realizar consultas en esta base de datos de plazas y parques

Hola,
Estoy luchando con una consulta que no se como hacerla.
Se trata de plazas y parques de mi ciudad.
Una plaza esta identificada por una calle y una altura de calle
En la consulta utilizo 3 tablas.
plazas: iuobjeto + cod_zona + referencia + cod_especial
el campo referencia es otro uiobjeto. Me sirve cuando una plaza es grande y tiene varias calles alrededor. Si busco por una calle que no es la de referencia, este campo m dice cual es la de referencia.
objetos: iuobjeto + cod_calle + altura + cod_tipo_objeto + comentario

calle: cod_calle + nom_calle
La salida tendria que ser:
cod_zona + cod_calle + nom_calle + altura + referencia + cod_especial + comentario
El problema es que en "referencia" no quiero que me aparezca el valor uiobjeto sino el cod_calle al que pertenece ese uiobjeto
¿Cómo seria la consulta?
Espero haberme explicado bien.
Gracias
Respuesta
1
Tendría que tener claro cuales son los campos clave en cada tabla. Me dices que la plaza la identificas con calle y altura pero esos campos no están en esa tabla. "referencia" dices apunta a "uiobjeto" que imagino es el de objetos no al de plazas. ¿?
Intentando adivinar:
select cod_zona,cod_calle,nom_calle,altura,(select cod_calle from objetos where uiobjeto=p.referencia) "referencia",cod_especial,comentario
from plazas p, objetos o, calle c
where p.uiobjeto=o.uiobjeto and o.cod_calle=c.cod_calle;
Si dan demasiadas filas es que las uniones no son las correctas y falta alguna más.
Para saber las restricciones que tienen tus tablas.
SELECT DISTINCT A.TABLE_NAME,CONSTRAINT_TYPE,(SELECT COLUMN_NAME
FROM USER_CONS_COLUMNS WHERE CONSTRAINT_NAME=A.CONSTRAINT_NAME) COLUMN_NAME
FROM USER_CONSTRAINTS A
WHERE A.TABLE_NAME ='PLAZAS' OR A.TABLE_NAME = 'OBJETOS' AND A.TABLE_NAME ='CALLE'
ORDER BY 1,2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas