Saber los datos que sobran de una tabla comparada con otra

Este es un tip sobre como obtener cuales son los valores que sobran en una tabla comparandola con otra. Veamos un ejemplo de esto:

Elementos de las tablas A y B
Elementos de las tablas A y B

si quiero saber que elementos de la tabla A sobran comparada con la tabla B, el resultado seria: Ana y Julian, estos dos nombres sobran de A. Tambien funciona de forma inversa, si quisiera saber que elementos sobran de B, la respuesta seria Luis, Paola, Maria.

Veamos el SQL!!

comencemos por la parte basica:

  • SELECT * FROM tablaA LEFT JOIN tablaB ON tablaA.nombre=tablaB.nombre;

esto devolvera algo como:

tablaA.id         tablaA.nombre         tablaB.id         tablaB.nombre

1                       Ana                             NULL              NULL

2                       Julian                          NULL               NULL

3                       Jose                             3                      Jose

4                       Sandra                        4                      Sandra

5                       Jorge                           5                      Jorge

Donde apreciamos que los valores de tablaB.id y tablaB.nombre son NULL, solo nos resta anadir la condicion para filtrar solo esos datos:

  • SELECT * FROM tablaA LEFT JOIN tablaB ON tablaA.nombre=tablaB.nombre WHERE tablaB.id<=>NULL;

La parte importante que deben recordar es que para poder comparar un NULL se debe hacer uso del operador <=> que devolvera true en caso de que el valor comparado sea NULL o falso en caso contrario. Con esa clausula WHERE el resultado que se obtiene es:

tablaA.id         tablaA.nombre         tablaB.id         tablaB.nombre

1                       Ana                             NULL              NULL

2                       Julian                          NULL               NULL

listo para usarse. mas informacion sobre el operador <=> y el uso de Null

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s