Diferencia entre UNION y Join Full

1,865 views
Skip to first unread message

Fox Learner

unread,
Aug 29, 2012, 4:29:22 PM8/29/12
to publice...@googlegroups.com
Disculpen mi ignorancia, pero yo no tengo tantos años como ustedes en este negocio.

Segun google dice que el UNION une toditito entre dos tablas con la misma estructura.


No haría lo mismo un FULL JOIN ?

Gracias!

Juan Bonilla

unread,
Aug 29, 2012, 4:34:52 PM8/29/12
to publice...@googlegroups.com
si pero union anexa los Registros entre tablas con la misma estructura, join combina campos entre tablas relacionadas

Fox Learner

unread,
Aug 29, 2012, 4:36:35 PM8/29/12
to publice...@googlegroups.com
Creo que ya le voy captando...Según esto:


El join une mediante un solo campo clave.

Pero no sería el mismo resultado, si la coincidencia de la consulta fuera al 100% para un full join ?

Fox Learner

unread,
Aug 29, 2012, 4:42:13 PM8/29/12
to publice...@googlegroups.com
Juan, 

Y el UNION uniria los registros de ambas tablas, aunque no existiera una relacion entre ambas (mediante una clave primaria)?..

Saludos!

Juan Bonilla

unread,
Aug 29, 2012, 4:42:46 PM8/29/12
to publice...@googlegroups.com
por q el full join te devuelve los campos de la tabla a + los de la tabla b..


union te debuelve los registros de la tabla a + la tabla b, basados en que ambas tablas tengan la misma estructura..

tabla A
uno
dos
tres

tabla b
 cuatro
cinco
seis

join te puede devolver tabla (uno,dos,tres,cuatro,cinco,seis)

union no devolveria nada por que tabla a y b tienen diferentes campos

seria algo como
tabla a (1000 registros)
uno
dos
tres


tabla b (1000 registros)
uno
dos
tres


el resultado de union seria
uno
dos
tres

pero con 2000 registros

Ing.Daniel Bojorge

unread,
Aug 29, 2012, 4:47:47 PM8/29/12
to publice...@googlegroups.com
ambos son para trabajar con más de una tabla.

La unión genera información de dostablas unidas, o sea, anexa registros de dos consultas (select) y el resultado es la unión de dos tablas.

El join, es la combinación de dos tablas a partir de un campo en común entre las dos, el resultado es la combinación de ambas tablas.
> --
>  
>  
>  
>

--
Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
www.debsconsultores.com
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)

Fox Learner

unread,
Aug 29, 2012, 4:50:07 PM8/29/12
to publice...@googlegroups.com
Juan, entendí perfectamente lo que dices. Muy bien explicado.

Hasta me lo puse a imaginar como seria...

Me imagino que con el join despues de la consulta se crean una especie de cursor o tabla virtual que contiene una especie de archivo de índice o archivo de punteros que apunta hacia los datos de ambas tablas..

En ese archivo de punteros solo estaría un campo (el que se usó como clave para llevar a cabo el join) y por medio de ese tendré acceso a los datos de ambas tablas..

Gracias!

Fox Learner

unread,
Aug 29, 2012, 4:53:29 PM8/29/12
to publice...@googlegroups.com
Y podrían hacerse consultas a mas de 2 tablas en un solo intento?...

Juan Bonilla

unread,
Aug 29, 2012, 4:53:34 PM8/29/12
to publice...@googlegroups.com
no, el resultado de ambas operaciones son cursores, no actualizas informacion de tablas con ellos, para hacer eso serian vistas actualizables..

Fox Learner

unread,
Aug 29, 2012, 4:57:23 PM8/29/12
to publice...@googlegroups.com
Disculpame Juan.. Solo estaba pensando en como programaría el código interno de un join el fabricante del lenguaje T-SQL. Solo hice una analogía a como creo que trabajan los archivos de índice en Visual Foxpro o los punteros en C.

Perdon por "pensar en voz alta" jeje

Gracias!

Guillermo MDQ

unread,
Aug 29, 2012, 6:59:05 PM8/29/12
to publice...@googlegroups.com
Para explicarlo de una forma grafica, tipo para chicos de jardin:

UNION pega las tablas una arriba de las otras, como tienen que tener los mismos campos queda un cursor mas alto.

Full JOIN pega las tablas una al lado de la otra, como junta los campos de una y de otra, queda un cursor mas ancho.

Espero se entienda, jaja :)

Saludos
Guillermo

Ing.Daniel Bojorge

unread,
Aug 29, 2012, 6:59:58 PM8/29/12
to publice...@googlegroups.com
honestamente, para mi no tienen comparación, mientras la union, concatena dos tablas, por ejemplo dos tablas de ventas, una actual y la otra histórica, el join, mezcla dos tablas que tienen un campo en común (maestro y detalle de una facturación), son operaciones diferentísimas.


El miércoles, 29 de agosto de 2012, Fox Learner <thenewin...@gmail.com> escribió:

Fox Learner

unread,
Aug 30, 2012, 10:42:07 AM8/30/12
to publice...@googlegroups.com
Gracias a todos! Cada una de las explicaciones aportó algo muy significativo.

Guillermo,

Gracias por la explicación tipo jardin de niños, creo que esa me sirvió para entenderlo completamente jeje

Saludos!
Reply all
Reply to author
Forward
0 new messages