BD relaciones

Estoy aprendiendo Oracle 9i, sin embargo, mi problema es crear relaciones para realizar consultas. El caso es que tengo un ejemplo donde creo vistas, imaginenos vista1, que arroja algo como:
Vendedor ProductoA
C. Herrera Lentes
D. Lopez Gorras
Y en la vista2, arroja algo como:
Vendedor ProductoB
C. Herrera Playera
D. Lopez Tennis
y vista3, arroja algo como:
Vendedor ProductoC
C. Herrera Short
D. Lopez Calcetas
Y tengo que realizar una salida como:
Vendedor ProductoA ProductoB ProductoC
C. Herrera Lentes Playera Short
D. Lopez Gorras Tennis Calcetas
Pero no entiendo la clausula WHERE, muy bien, es decir, no hay un procedimiento muy fácil de entender las relaciones entre las tablas, tal vez como un simple ecuación matemática o alguna explicación fácil de entender y fundamental, ¿una página o manual en la red? Gracias por tu ayuda
Respuesta
1
Para que entiendas bien como funciona bien este rollo deberías consultar lo que se llama Algebrá Relacional,
con ella entenderás como es que dunciona esto. Dentro de la Cláusula Where se generan las igualdades entre las llaves de las tablas o vistas,
para poder relacionarlas y no duplicar datos, de otra manera sin la relación entre sus campos llaves generarías un producto cartesiano entre las tablas
involucradas en el From, porque las tablas son como si fueran matrices.
Así la solución a lo que dices es la siguiente:
Vista1
Vendedor
ProductoA
Vista2
Vendedor
ProductoB
Vista3
Vendedor
Producto
Select a.vendedor, a.productoA, b.productoB, c.productoC
From Vista1 a, Vista2 b, Vista3 c
where a.vendedor = b.vendedor
and b.vendedor = c.vendedor;
Así evitas registros duplicados, ralacionas las tres tablas y obtienes los datos que requieres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas