No estoy seguro de cómo describir mi estructura de la tabla, por lo que espero que esto tiene sentido ...Cómo hacer combinación externa en las Tablas 2> (Oracle)
Tengo 3 tablas de relación jerárquica de forma que A tiene una relación de uno a muchos con respecto a B, que a su vez tiene una relación de uno a muchos con C. El truco es que se permite que la clave externa en B y C sea nula (es decir, no se define ninguno de los padres). También tengo D y E sin relación con A, B o C (directamente).
Finalmente, tengo F que es una tabla de unión con muchas relaciones con C, D y E. Ninguno de sus campos (FK a las otras tablas) son nulables.
Me gustaría escribir una declaración SQL que una todas las tablas en un solo conjunto de resultados. Yo sé que tengo que une externa usuario porque quiero que todos regresaron Un independientemente de si tiene o no tiene hijos en B y similares con B y C.
Primera pregunta: He estado buscando en el exterior de combinación ANSI sintaxis (solo he usado Oracle "(+)" antes) y no puedo encontrar un ejemplo que el externo se una a más de 2 tablas. ¿Alguien puede proporcionar/señalar un ejemplo?
Pregunta Dos: ¿Es posible incluir registros de las tablas D y E en función de la tabla de unión F? Si es así, ¿se hace esto con uniones externas?
Gracias!
EDITAR
Por supuesto, justo después de publicar esto, me encontré con un ejemplo que responde a la pregunta 1. Sin embargo, la pregunta 2 todavía me ha dejado perplejos.
Ejemplo:
SELECT A.a,
B.b,
C.c
FROM A
FULL OUTER JOIN B ON B.a = A.a
FULL OUTER JOIN C ON C.b = B.b
Probablemente no desee FULL OUTER JOIN; existe, pero rara vez se usa (o es útil). –
No ha especificado qué columnas de F se unen a cada una de las otras tablas, lo que significa que nadie puede dar una respuesta definitiva. –
¿Podría publicar algunos datos de muestra y el conjunto de registros que le gustaría obtener? A's, B's an's no son nombres muy informativos. – Quassnoi