Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ayuda con left join en access!!!

Estas en el tema de ayuda con left join en access!!! en el foro de Bases de Datos General en Foros del Web. Tengo una base de datos access en la cual tengo tres tablas asi: Proveedores CatalogoMarcas CatalogoProductos Marca ClaveMarca ClaveMarca Producto1 Descripcion ClaveProducto producto2 Descripcion producto3 ...
  #1 (permalink)  
Antiguo 07/01/2005, 12:48
Usuario no validado
 
Fecha de Ingreso: abril-2002
Ubicación: Mexico
Mensajes: 56
Antigüedad: 22 años, 7 meses
Puntos: 0
Exclamación ayuda con left join en access!!!

Tengo una base de datos access en la cual tengo tres tablas asi:
Proveedores CatalogoMarcas CatalogoProductos
Marca ClaveMarca ClaveMarca
Producto1 Descripcion ClaveProducto
producto2 Descripcion
producto3
producto4

El campo "Marca" se relaciona con el catalogo de marcas y los productos con la clave del producto (catalogo productos) mas la clave de la marca.
Lo que necesito saber es como contruyo un select para obtener las descripciones de la marca y los productos 1,2,3 y 4.
Yo se hacer esto en oracle pero en access no se como, alguien me podria ayudar??
En oracle lo hago asi:
SELECT Marca.Descripcion Marca,P1.Descripcion P1,
P2.Descripcion P2,P3.Descripcion P3,P4.Descripcion P4
FROM Productos,CatMarcas,CatProducto P1,CatProducto P2,
CatProducto P3,CatProducto P4
WHERE Marca=CatMarca.ClaveMarca AND
Marca=P1.ClaveMarca(+) AND
Marca=P2.ClaveMarca(+) AND
Marca=P3.ClaveMarca(+) AND
Marca=P4.ClaveMarca(+) AND
Producto1=P1.ClaveProducto(+) AND
Producto2=P2.ClaveProducto(+) AND
Producto3=P3.ClaveProducto(+) AND
Producto4=P4.ClaveProducto(+) AND
Marca=1
En oracle pongo el (+) para que me traiga los registros que no lleguen a tener valor, como hago este mismo select en access???

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 08/01/2005, 11:59
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Prueba con Nulos

En Access los campos que no tienen valor se toman como nulos.
Podrias probar incluyendo la opcion de (Es Nulo) con un OR en cada campo.
  #3 (permalink)  
Antiguo 10/01/2005, 05:43
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 7 meses
Puntos: 0
Sería algo así

SELECT Marca.Descripcion Marca,P1.Descripcion P1,
P2.Descripcion P2,P3.Descripcion P3,P4.Descripcion P4
FROM Productos LEFT JOIN CatMarcas ON Marca=CatMarca.ClaveMarca LEFT JOIN CatProducto P1 ON Marca=P1.ClaveMarca AND Producto1=P1.ClaveProducto LEFT JOIN CatProducto P2 ON Marca=P2.ClaveMarca AND Producto2=P2.ClaveProducto LEFT JOIN CatProducto P3 ON Marca=P3.ClaveMarca AND Producto3=P3.ClaveProducto LEFT JON CatProducto P4 ON Marca=P4.ClaveMarca AND Producto4=P4.ClaveProducto
WHERE Marca=1

De todas formas, lo mejor es abrir access, crear una nueva consulta, añadir todas las tablas, y relacionar los campos, luego en vista SQL, podrás ver como se hace

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:09.