Home Bases de Datos MySQL Unión, Intersección y Diferencia

PostHeaderIcon Unión, Intersección y Diferencia

Usar puntuación: / 39
MaloBueno 

En MySQL no existe una forma directa de hacer la instersección ni la diferencia entre tablas. Solo la unión tiene una traducción directa.

La unión de dos tablas se hace directamente con la operación UNION de la siguiente manera

SELECT campo1, campo2... | * FROM tabla 1 WHERE condición1

UNION

SELECT campo3, campo4... | * FROM tabla 2 WHERE condición2

EJEMPLO:

SELECT * FROM ALUMNOS WHERE FECHA_NACIMIENTO<='1970-01-01'

UNION

SELECT * FROM ALUMNOS WHERE FECHA_NACIMIENTO >='1980-01-01';

La intersección no existe en MySQL. Para ello se usa in INNER JOIN.

SELECT * FROM A INNER JOIN B ON A.CAMPO = B.CAMPO

La diferencia tampoco existe en MySQL. Para sustituirla se utiliza cualquiera de las dos siguientes:

SELECT * FROM TablaA LEFT OUTER JOIN TablaB ON TablaA.nombre = TablaB.nombre WHERE TablaB.id IS NULL

Se podría hacder lo mismo con un RIGHT OUTER JOIN.

Particularmente la diferencia prefiero hacerla con la operación NOT EXISTS

SELECT DISTINCT campo1 FROM TABLA1 WHERE NOT EXISTS (

SELECT campo2 FROM TABLA2 WHERE TABLA1.campo = TABLA2.campo);

 

Comentarios   

 
+1 #5 Giovax68 19-02-2015 02:54
:lol: :lol: :lol: :lol:

Muchísimas gracias, me encantó tu post. Tiene información excelente. En mi caso me funcionó la última opción que diste para la 'DIFERENCIA', o sea 'WHERE NOT EXISTS'.
Citar
 
 
+1 #4 ALEXA 07-11-2014 22:39
:-* LLORO AUXILIO
Citar
 
 
+3 #3 jona 04-07-2014 01:29
No mames wee te amo, me salvaste jeje gracias por el aporte
Citar
 
 
-2 #2 ramiro hernandez 11-06-2014 17:57
:P :oops: :-* :-| 8) ;-)

dice la maestra de base de datos que es una total mentiras
Citar
 
 
+1 #1 adiel hernandez 11-06-2014 17:56
tu info es verdaderamente cool
Citar
 

Escribir un comentario


Código de seguridad
Refescar

PostHeaderIcon Más Comentado

PostHeaderIcon Últimos Comentarios

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy105
mod_vvisit_counterAyer750
mod_vvisit_counterEsta semana855
mod_vvisit_counterLa semana pasada4692
mod_vvisit_counterEste mes23871
mod_vvisit_counterEl mes pasado46803
mod_vvisit_counterTodos los días1476244

We have: 43 guests online
Hoy es: Ene 23, 2018