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

Inner Join De Tres Tablas

Estas en el tema de Inner Join De Tres Tablas en el foro de ASP Clásico en Foros del Web. La relacion entre tablas es asi: boletas.venta --> detbolet.venta detbolet.articulo --> farticul.articulo y debo rescatar el campo farticul.desc Xql_1 = "SELECT a.venta " Xql_1 = ...
  #1 (permalink)  
Antiguo 22/11/2005, 12:20
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
Inner Join De Tres Tablas

La relacion entre tablas es asi:
boletas.venta --> detbolet.venta
detbolet.articulo --> farticul.articulo

y debo rescatar el campo farticul.desc

Xql_1 = "SELECT a.venta "
Xql_1 = Xql_1 & " FROM " & boletas & " AS a "
Xql_1 = Xql_1 & " INNER JOIN " & detbolet & " AS b "
Xql_1 = Xql_1 & " ON "
Xql_1 = Xql_1 & " a.venta = b.venta "

el primer inner me funciona, no asi cuando quiero anidar la otra relacion:

Xql_1 = "SELECT c.desc "
Xql_1 = Xql_1 & " FROM (" & boletas & " AS a "
Xql_1 = Xql_1 & " INNER JOIN (" & detbolet & " AS b "
Xql_1 = Xql_1 & " INNER JOIN " & farticul & " AS c "
Xql_1 = Xql_1 & " ON "
Xql_1 = Xql_1 & " b.articulo = c.articulo )"
Xql_1 = Xql_1 & " ON "
Xql_1 = Xql_1 & " a.venta = b.venta )"


Que está mal???
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X
  #2 (permalink)  
Antiguo 22/11/2005, 12:30
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Mas o menos para unir 3 tablas seria asi:

SELECT a.campo1, a.campoN, b.campo1, b.campoN, c.campo1, c.campoN FROM tbl_1 a INNER JOIN tbl_2 b ON a.campo1 = b.campo1 INNER JOIN tbl_3 c ON c.campo2 = b.campo2 [WHERE condiciones]
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 22/11/2005, 12:35
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Seria así:

"select a.venta from (boletas a inner join detbolet b on b.venta = a.venta) inner join farticul c on c.articulo = b.articulo"

Ahora puedes continuar con: "where ... group by ... order by ..."

Los registros que no tengan relación con otra tabla no aparecerán, en caso que asi lo quieras todo bien, sino utilizar "left join".

Bueno, espero funcione, hasta luego!
__________________
Sergio
  #4 (permalink)  
Antiguo 22/11/2005, 12:37
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
UPPPPSSS !!!! Me ganaste de mano u_goldman!

Saludos!
__________________
Sergio
  #5 (permalink)  
Antiguo 22/11/2005, 12:38
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 8
muchas gracias por la ayuda, funcionó a la perfecciòn
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X
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 22:33.