Buenas tardes, estoy intentando realizar una consulta a base de datos sobre varias tablas:
select
V.VID_NOMBRE_FISICO ,
E.ENT_NOMBRE ,
T.OPC_VIDEO_DESC ,
J.PER_NOMBRE ,
A.PER_NOMBRE ,
F.PER_NOMBRE ,
AE.PER_NOMBRE
from vid_video V,
ENT_ENTIDAD_HS E,
PER_PERSONAJE_HS J,
PER_PERSONAJE_HS A,
PER_PERSONAJE_HS F,
PER_PERSONAJE_HS AE,
OPC_VIDEO T,
RELACION_VIDEO RVE,
RELACION_VIDEO RVJ,
RELACION_VIDEO RVA,
RELACION_VIDEO RVF,
RELACION_VIDEO RVAE,
RELACION_VIDEO RVT
WHERE
V.VID_ID = RVE.VID_ID AND
V.VID_ID = RVJ.VID_ID AND
V.VID_ID = RVA.VID_ID AND
V.VID_ID = RVF.VID_ID AND
V.VID_ID = RVAE.VID_ID AND
V.VID_ID = RVT.VID_ID AND
E.ENT_ID(+) = RVE.REL_ID AND
J.PER_ID(+) = RVJ.REL_ID AND
A.PER_ID(+) = RVA.REL_ID AND
F.PER_ID(+) = RVF.REL_ID AND
AE.PER_ID(+) = RVAE.REL_ID AND
T.OPC_VIDEO_ID(+) = RVT.REL_ID AND
RVE.TIPO_VIDEO_ID = 1 AND
RVJ.TIPO_VIDEO_ID = 2 AND
RVA.TIPO_VIDEO_ID = 3 AND
RVF.TIPO_VIDEO_ID = 4 AND
RVAE.TIPO_VIDEO_ID = 5 AND
RVT.TIPO_VIDEO_ID = 6
order by
V.VID_NOMBRE_FISICO,
E.ENT_NOMBRE,
T.OPC_VIDEO_DESC,
J.PER_NOMBRE ,
A.PER_NOMBRE ,
F.PER_NOMBRE
La sql consiste en: una tabla video con los datos de los videos, una tabla relacion_video que contiene el id del video, el id del elemento relacionado y el tipo de relacion.
los tipos de relacion son:
1- entidad (con la tabla ENT_ENTIDAD_HS) 0 a 1
2- persona1 ( conla tabla PER_PERSONAJE_HS) 0 a n
3- persona2 ( conla tabla PER_PERSONAJE_HS) 0 a n
4- persona3 ( conla tabla PER_PERSONAJE_HS) 0 a n
5- persona4 ( conla tabla PER_PERSONAJE_HS) 0 a n
6- tipo video (con la tabla OPC_VIDEO) 0 a 1
el caso es que no es obligatorio que existan relaciones de todos los tipos, y para las relaciones 2,3,4 y 5, pueden existir varias personas relacionadas para un mismo video, estoy intentando que se muestren los datos aunque no exista relacion, pero la join externa (+) me da error.
Tambien tengo el problema de que me repite todos los datos varias veces, para cada registro de relacion con persona que exista...
No se si ha quedado bien explicado, si me pudierais echar una mano os lo agadecería
un saludo