Discussion:
Anidar INNER JOINS
(demasiado antiguo para responder)
gustavo gutierrez
2003-10-07 11:41:36 UTC
Permalink
hola a todos: estoy haciendo una consulta de tres tablas: PartidasdeVenta,
la cual contiene entre otros un ampo clave de producto, el cual se relaciona
a la tabla Productos, la cual contiene entre otros un campo clave de unidad
de medida, el cual se relaciona a la tabla de Unidades. la consulta SQL va
asi:

rsPartidasdeVenta.Open "SELECT PartidasdeVenta.Partida,
PartidasdeVenta.Cantidad, " & _
"Unidades.Nombre AS Unidad, Productos.Nombre AS
Producto, " & _
"PartidasdeVenta.PrecioUnitario,
PartidasdeVenta.Importe " & _
"FROM PartidasdeVenta INNER JOIN Productos ON
Productos.Clave = " & _
"PartidasdeVenta.Producto WHERE " & _
"PartidasdeVenta.Venta = '" & strClave & "' " & _
"ORDER BY PartidasdeVenta.Venta", cnSicad, , ,
adCmdText

esto funciona si quito cualquier referencia a la tercera tabla, la de
unidades, pero cuando la pongo,
no se donde meter el otro INNER JOIN para relacionar productos con unidades,
ni como poner el ON para esta ultima relacion.

¿Alguien puede ayudarme?


!!!GRACIAS DE ANTEMANO!!

gustavo gutierrez morales

--
ANTI SPAM: Quita las mayusculas de mi direccion de mail
Rubén Vigón
2003-10-07 11:01:47 UTC
Permalink
La sintaxis para 3 tablas sería algo así:

SELECT * FROM
(Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON Tabla1.Campo = Tabla3.Campo
WHERE... ORDER BY...

Y, para 4 tablas:

SELECT * FROM
((Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON Tabla1.Campo = Tabla3.Campo)
INNER JOIN Tabla4 ON Tabla1.Campo = Tabla4.Campo
WHERE... ORDER BY...

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic

(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
gustavo gutierrez
2003-10-07 12:10:17 UTC
Permalink
!!GRACIAS!!. aca es de madrugada y me sorprende encontrar tan prontas
respuestas..de repente se me olvida la diferencia de horario..que bueno
recibir ayuda desde el otro lado del oceano.
!!saludos!!


--
ANTI SPAM: Quita las mayusculas de mi direccion de mail
Post by Rubén Vigón
SELECT * FROM
(Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON Tabla1.Campo = Tabla3.Campo
WHERE... ORDER BY...
SELECT * FROM
((Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON Tabla1.Campo = Tabla3.Campo)
INNER JOIN Tabla4 ON Tabla1.Campo = Tabla4.Campo
WHERE... ORDER BY...
Un saludo!
Rubén Vigón
Microsoft MVP Visual Basic
(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
gustavo gutierrez
2003-10-07 12:13:18 UTC
Permalink
aunque la tabla 3 no tiene que ver con la tabla 1. en resumen: la tabla 1
tiene un campo que se relaciona con la tabla 2, y la tabla 2 tiene un campo
(OTRO), que se relaciona con la tabla 3.
como la ves?
saludos!!


--
ANTI SPAM: Quita las mayusculas de mi direccion de mail
Post by Rubén Vigón
SELECT * FROM
(Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON Tabla1.Campo = Tabla3.Campo
WHERE... ORDER BY...
SELECT * FROM
((Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON Tabla1.Campo = Tabla3.Campo)
INNER JOIN Tabla4 ON Tabla1.Campo = Tabla4.Campo
WHERE... ORDER BY...
Un saludo!
Rubén Vigón
Microsoft MVP Visual Basic
(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
Rubén Vigón
2003-10-07 13:14:02 UTC
Permalink
Es lo mismo :-) sólo tienes que cambiar la comparación del ON, o sea, lo que está entre asteriscos:

SELECT * FROM
(Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON *Tabla2.Campo = Tabla3.Campo*
WHERE... ORDER BY...

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic

(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
gustavo gutierrez
2003-10-08 11:37:22 UTC
Permalink
!correcto!
!gracias, tio!


--
ANTI SPAM: Quita las mayusculas de mi direccion de mail
Post by Rubén Vigón
Es lo mismo :-) sólo tienes que cambiar la comparación del ON, o sea, lo
SELECT * FROM
(Tabla1 INNER JOIN Tabla2 ON Tabla1.Campo = Tabla2.Campo)
INNER JOIN Tabla3 ON *Tabla2.Campo = Tabla3.Campo*
WHERE... ORDER BY...
Un saludo!
Rubén Vigón
Microsoft MVP Visual Basic
(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
Loading...