Foros del Web » Programando para Internet » ASP Clásico »

Inner Join Anidados

Estas en el tema de Inner Join Anidados en el foro de ASP Clásico en Foros del Web. Hola Amigo del foro! Bien tengo este ejemplo del INNER JOIN en forma anidada pero por alguna razon no funciona! tengo 5 tablas cuyos campos ...
  #1 (permalink)  
Antiguo 02/11/2005, 08:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Inner Join Anidados

Hola Amigo del foro!

Bien tengo este ejemplo del INNER JOIN en forma anidada pero por alguna razon no funciona!

tengo 5 tablas cuyos campos (por lo menos los mas relevantes) son:

Tabla Marca
idmarca,marca

Tabla Linea:
idlinea, linea

Tabla Producto
idproducto, producto,idlinea

Tabla Producto_configuracion
idproduct_conf,idproducto,idpresentacion

Tabla Presentacion
idpresentacion,presentacion

Usando el INNER JOIN quiero seleccionar los siguientes campos

linea.descripcion,producto.producto,presentacion.p resentacion

en donde

marca.idmarca=linea.idmarca
linea.idlinea=producto.idlinea
producto.idproducto=producto_configuracion.idprodu cto
producto_configuracion.idpresentacion=presentacion .idpresentacion

Tengo este ejemplo! pero en access me da el error en donde me dice que falta un parametro


SELECT a.campo1, b.campo2, c.campo3, d.campo4 FROM tbl_uno a INNER JOIN tbl_dos b ON a.campo_id = b.campo_id INNER JOIN tabla_dos b ON b.campo_id = a.campo_id INNER JOIN tbl_tres c ON c.campo_id = b.campo_id INNER JOIN tbl_cuatro d ON d.campo_id = c.campo_id [WHERE CONDICIONES]

Si pueden ayudarme les agradezco

SAINTEL
  #2 (permalink)  
Antiguo 02/11/2005, 09:31
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
SELECT linea.descripcion,producto.producto,presentacion.p resentacion
FROM marca INNER JOIN linea ON marca.idmarca=linea.idmarca INNER JOIN producto ON linea.idproducto=producto.idproducto INNER JOIN producto_configuracion ON producto_configuracion.idproducto=producto.idprodu cto INNER JOIN presentacion ON producto_configuracion.idpresentacion=presentacion .idpresentacion

Bien monte esta sentencia y me muestras el siguiente error:

ERROR DE SINTAXIS (FALTA UN OPERADOR)

PERO CUALLLLLLLLLLLLL

esa es la pregunta
  #3 (permalink)  
Antiguo 02/11/2005, 09:33
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
hagan caso omiso a los espacios en blanco pues ello se debe al momento de montar el texto
  #4 (permalink)  
Antiguo 02/11/2005, 09:35
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Arriba en las tablas me falto colocar en la tabla linea el idmarca pero ese campo si existe

gracias
  #5 (permalink)  
Antiguo 02/11/2005, 09:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
Correccion

SELECT linea.descripcion,producto.producto,presentacion.p resentacion
FROM marca INNER JOIN linea ON marca.idmarca=linea.idmarca INNER JOIN producto ON linea.idlinea=producto.idlinea INNER JOIN producto_configuracion ON producto_configuracion.idproducto=producto.idprodu cto INNER JOIN presentacion ON producto_configuracion.idpresentacion=presentacion .idpresentacion
  #6 (permalink)  
Antiguo 02/11/2005, 09:42
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Saintel, en las sentencias de seleccion primero debes especificar todos los campos, depues hacer el resto de la sentencia

Código:
SELECT a.idmarca, a.marca, b.idproducto, c.id_product_conf, d.idpresentacion FROM marca a 
Ya despues las unes como quieras, fijate en los alias que utlice para las tablas, te reducen drasticamente las lineas de codigo.

Retiro lo dicho, la lei con atencion je je je, bueno, mi consejo es que las unas una por una seguramente es cualquier cosa este error, divide y venceras!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Última edición por u_goldman; 02/11/2005 a las 09:51
  #7 (permalink)  
Antiguo 02/11/2005, 10:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 1 mes
Puntos: 0
U_goldman como andas!

Gracias pero podrias ser mas especifico cuando me dices que las unas una por una!

pregunto? la setencia escrita arriba me indica error de sintaxis! es decir debe ser que esta mal escrita alguna instruccion

Si esto se resuelve haciendo como tu me indicas! me puedes dar un ejemplo y yo me guio, pues no entiendo que me quieres decir?

Gracias

Saintel
  #8 (permalink)  
Antiguo 02/11/2005, 18:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Hola Saintel, pues no te habia contestado antes porque no se que pasaba pero no podia darle F5 a FDW como de costumbre

De lo que se trata es de lo siguiente

tenemos 5 tabas cierto?

Pero queremos unirlas una por una para ver donde puede estar el error

1.- SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campon FROM tbl_algo a INNER JOIN tbl_algo_mas b ON a.campo1 = b.campo1 [WHERE condiciones]

2.- SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campon, c.campo1, c.campo2 FROM tbl_algo a INNER JOIN tbl_algo_mas b ON a.campo1 = b.campo1 INNER JOIN tbl_algo_mas_mas c ON c.campo1 = b.campo1
[WHERE condiciones]

3.- SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campon, c.campo1, c.campo2, d.campo1, d.campon FROM tbl_algo a INNER JOIN tbl_algo_mas b ON a.campo1 = b.campo1 INNER JOIN tbl_algo_mas_mas c ON c.campo1 = b.campo1 INNER JOIN tbl_algo_mas_mas_mas d ON d.campo1 = c.campo1
[WHERE condiciones]

Y asi sucesivamente, por algun lado saltara el error, y ahora que lo pienso, tu error podria estar en las condiciones , puede pegarlas?

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 13:40.