Para que sirve el Inner Join de SQL?

4,906 views
Skip to first unread message

Fox Learner

unread,
May 15, 2012, 11:19:03 AM5/15/12
to Comunidad de Visual Foxpro en Español
Recuerdo que usé el asistente de fox para crear una consulta de 2
tablas y el asistente marco algo como inner join.

Para que sirve en la practica?..

Ya vi la sintaxis, pero lo que quiero saber es para que sirve?...

carlos SALCEDO

unread,
May 15, 2012, 11:25:11 AM5/15/12
to visual fox

http://www.aulaclic.es/sql/t_3_4.htm


Saludos
Carlos

> Date: Tue, 15 May 2012 08:19:03 -0700
> Subject: [vfp] Para que sirve el Inner Join de SQL?
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com

Roberto Lemos

unread,
May 15, 2012, 11:24:56 AM5/15/12
to Comunidad de Visual Foxpro en Español
Bueno yo lo uso, para por ejemplo combinar el contenido de 2 tablas,
mediante un campo en comun




-----Mensaje original-----
From: Fox Learner
Sent: Tuesday, May 15, 2012 10:19 AM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] Para que sirve el Inner Join de SQL?

Recuerdo que us� el asistente de fox para crear una consulta de 2

Guillermo MDQ

unread,
May 15, 2012, 11:43:48 AM5/15/12
to publice...@googlegroups.com

"INNER JOIN especifica que el resultado de la consulta contenga sólo filas en una tabla con la que coincidan una o varias filas de otra tabla"

Todos los Visual FoxPro con que programan ustedes  me parece que vinieron fallados porque no tienen el archivo de Ayuda, no ?

Saludos
Guillermo



El martes, 15 de mayo de 2012 12:24:56 UTC-3, Roberto Lemos escribió:
Bueno yo lo uso, para por ejemplo combinar el contenido de 2 tablas,
mediante un campo en comun




-----Mensaje original-----
From: Fox Learner
Sent: Tuesday, May 15, 2012 10:19 AM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] Para que sirve el Inner Join de SQL?

Recuerdo que us� el asistente de fox para crear una consulta de 2

Fox Learner

unread,
May 15, 2012, 11:45:16 AM5/15/12
to Comunidad de Visual Foxpro en Español
Leyendo aquí veo que usan un Full join. Qué diferencia hay entre el
full join y el inner join?...

http://www.portalfox.com/index.php?name=News&file=article&sid=12390

También menciona "union". Qué diferencia existe entre el inner join y
el "union"?..

Reitero, solo desería una explicación sencilla.

Gracias Roberto, esa es una buena explicación. Te agradezco!

Fox Learner

unread,
May 15, 2012, 11:57:37 AM5/15/12
to Comunidad de Visual Foxpro en Español
Guillermo,

Entonces, si quisiera combinar 2 campos de 2 tablas diferentes aunque
no coincidan todos los registros, podría usar inner join? O sería un
error de lógica..

Puedo usar inner join para crear relaciones entre las tablas?.. O
sería un uso incorrecto de ese "join"?..

Te pregunto a ti porque no creo que esto venga en la ayuda..

Carlos Miguel FARIAS

unread,
May 15, 2012, 11:58:57 AM5/15/12
to publice...@googlegroups.com
full join: Junta total, todas las filas de unas con todas la filas de la otra.
join: es cuando se "juntan", aparean o relacionan dos tablas que
tienen algún/ps campo/s en común.
En el modelo relacional el join se hace igualando el/los campo/s que
conforman la clave primaria en una tabla con la clave equivalente
"foranea" en otra tabla.
Foranea: dicese del conjunto de campos que sin ser datos específicos
de una tabla, constituyen la clave primaria en otra tabla con la que
se relaciona.
Union: Es cuando se apilan en un conjunto resultado, los subconjuntos
resultantes de diferentes SELECT que proveen igual cantidad de
columnas de datos, y de tipo de dato igual o asimilable
Saludos: Miguel, La Pampa (RA)

P.D. Para mas datos sobre SQL, Aplique SQL de Groff

El 15/05/12, Fox Learner <thenewin...@gmail.com> escribió:

Roberto Lemos

unread,
May 15, 2012, 12:03:02 PM5/15/12
to Comunidad de Visual Foxpro en Español
No tienen que coincidir todos los registros:

Ejemplo

Tabla Cargos
ID DESCRIP
1 Chofer
2 Terramoza
3 Mecanico
4 Auxiliar

Tabla Personal
Nombre IdCargo
Juan Perez 1
Luis Perea 3
Juana Ruiz 2

Alli puedes combinar el IdCargo para obtener el nombre del cargo en una
consulta

Saludos

Roberto Lemos





-----Mensaje original-----
From: Fox Learner
Sent: Tuesday, May 15, 2012 10:57 AM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] Re: Para que sirve el Inner Join de SQL?

Guillermo,

Entonces, si quisiera combinar 2 campos de 2 tablas diferentes aunque
no coincidan todos los registros, podr�a usar inner join? O ser�a un
error de l�gica..

Puedo usar inner join para crear relaciones entre las tablas?.. O
ser�a un uso incorrecto de ese "join"?..

Guillermo MDQ

unread,
May 15, 2012, 12:05:47 PM5/15/12
to publice...@googlegroups.com

Utilizar INNER, LEFT, RIGHT y FULL es lo que te permite hacer las relaciones de acuerdo al resultado que desees obtener al usar el comando SELECT SQL y obtener un cursor acord:

INNER JOIN especifica que el resultado de la consulta contenga sólo filas en una tabla con la que coincidan una o varias filas de otra tabla.

LEFT [OUTER] JOIN especifica que el resultado de la consulta contenga todas las filas de la tabla a la izquierda de la palabra clave JOIN y sólo las filas que coincidan procedentes de la tabla a la derecha de la palabra clave JOIN. La palabra clave OUTER es opcional; se puede incluir para resaltar que se ha creado una combinación externa.

RIGHT [OUTER] JOIN especifica que el resultado de la consulta contenga todas las filas de la tabla a la derecha de la palabra clave JOIN y sólo las filas que coincidan de la tabla a la izquierda de la palabra clave JOIN. La palabra clave OUTER es opcional; se puede incluir para resaltar que se ha creado una combinación externa.

FULL [OUTER] JOIN especifica que el resultado de la consulta contenga todas las filas, coincidan o no, de ambas tablas. La palabra clave OUTER es opcional; se puede incluir para resaltar que se ha creado una combinación externa.

Saludos
Guillermo

Fox Learner

unread,
May 15, 2012, 12:06:27 PM5/15/12
to Comunidad de Visual Foxpro en Español
Gracias Maestro Carlos,

Me sirve la explicación y bastante.

Entonces, lo que saco como conclusion es esto:

1. Inner join, une registros coincidentes entre tablas.

2. Full join, une todos los registros entre tablas.

3. Union, une el resultado de 2 o mas consultas.

A ver si capte la idea..

Saludos!

Fox Learner

unread,
May 15, 2012, 12:09:45 PM5/15/12
to Comunidad de Visual Foxpro en Español
Gracias por la clase, Guillermo.

Te agradezco.

Carlos Miguel FARIAS

unread,
May 15, 2012, 12:10:35 PM5/15/12
to publice...@googlegroups.com
1- No digas une, deci juntar, relacionar, aparear, Registros
coincidentes por los que tengan valores de campos de junta iguales, si
decis une, confundis con union.
3. Correcto, lo que tiene que coincir que los tipos de datos de cada
una en cada columna sean iguales entre consultas

El 15/05/12, Fox Learner <thenewin...@gmail.com> escribió:

Fox Learner

unread,
May 15, 2012, 12:21:07 PM5/15/12
to Comunidad de Visual Foxpro en Español
Según lo que comenta el maestro Carlos,

"En el modelo relacional el join se hace igualando el/los campo/s que
conforman la clave primaria en una tabla con la clave equivalente
"foranea" en otra tabla.

"Foranea: dicese del conjunto de campos que sin ser datos específicos
de una tabla, constituyen la clave primaria en otra tabla con la que
se relaciona."

Sería correcto relacionar tablas con inner join?... O debería usar el
SET RELATION?..

Antes de que me regañen, recuerden que he mencionado varias veces que
estoy intentando volver a programar y que no me he dedicado a esto.

(Digo por qué se supone que lo del manejo de indices, claves primarias
y foraneas y crear relaciones es lo primero que debería saberse, pero
tengo varias "lagunas" de cosas básicas en mi formación, sobre todo
con Fox).

Walter R. Ojeda Valiente

unread,
May 15, 2012, 12:21:37 PM5/15/12
to publice...@googlegroups.com
Fíjate en el gráfico adjunto, supongo que luego lo podrás entender claramente.

Saludos.

Walter.




> Date: Tue, 15 May 2012 08:19:03 -0700
> Subject: [vfp] Para que sirve el Inner Join de SQL?
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com
Visual_SQL_JOINS_orig.jpg

Fox Learner

unread,
May 15, 2012, 12:28:50 PM5/15/12
to Comunidad de Visual Foxpro en Español
Orales! No sabia que puede ser tan complicado. O sea que hay que
pensarlo 2 veces antes de correr una sentencia Join.

Gracias por la grafica Walter!

Walter R. Ojeda Valiente

unread,
May 15, 2012, 12:34:24 PM5/15/12
to publice...@googlegroups.com
Como puedes ver en el gráfico, con las cláusulas LEFT, RIGHT, INNER y FULL tienes todas las posibilidades de relacionamiento de dos tablas.

En el Firebird si no especificas una de esas cláusulas al escribir un JOIN, por defecto usa INNER.

Saludos.

Walter.



> Date: Tue, 15 May 2012 09:28:50 -0700
> Subject: [vfp] Re: Para que sirve el Inner Join de SQL?
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com
>

Victor Espina

unread,
May 15, 2012, 12:43:37 PM5/15/12
to publice...@googlegroups.com
Esa grafica esta excelente Walter.

Saludos

Victor Espina


On Tuesday, May 15, 2012 11:21:37 AM UTC-5, Walter R. Ojeda Valiente wrote:
Fíjate en el gráfico adjunto, supongo que luego lo podrás entender claramente.

Saludos.

Walter.




> Date: Tue, 15 May 2012 08:19:03 -0700
> Subject: [vfp] Para que sirve el Inner Join de SQL?
> From: thenewin...@gmail.com

mpulla

unread,
May 15, 2012, 12:46:23 PM5/15/12
to publice...@googlegroups.com
Linda grafica Walter.

Saludos.
Mauricio

Luis Maria Guayan

unread,
May 15, 2012, 1:26:59 PM5/15/12
to publice...@googlegroups.com
Una imagen vale mas que mil JOINS :-)

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Carlos Miguel FARIAS

unread,
May 15, 2012, 6:51:54 PM5/15/12
to publice...@googlegroups.com
Los joins extramatrimoniales suelen traer problemas.
El SET RELATION es lo mismo que el left join.
En el set relation, cuando la tabla hija no tiene registros "emparejados" o "apareados", los campos respectivos devuelven nulos.
Nosostros en Cs. Económicas, enseñamos SQL y hacemos join de varias tablas, y saben resolverlo (y son 5 clases +/-), y te recomende un libro excelente para aprender sql.
Saludos: Miguel, La Pampa (RA).

Mario Oviedo

unread,
May 23, 2012, 4:42:13 PM5/23/12
to publice...@googlegroups.com
yo asi creia que era complicado pero no lo es


mira este grafico, como dice mi maestro 
un grafico vale mas que mil palabras
Reply all
Reply to author
Forward
0 new messages