Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] DUDA: sql comparar dos tablas

Estas en el tema de DUDA: sql comparar dos tablas en el foro de Mysql en Foros del Web. Lo primero me presento, soy Miguel. Llevo desde hace mucho tiempo visitando este foro y esta duda si necesito comentarla porque no lo logro sacarla. ...
  #1 (permalink)  
Antiguo 22/05/2013, 04:51
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 8 años
Puntos: 0
Pregunta DUDA: sql comparar dos tablas

Lo primero me presento, soy Miguel.

Llevo desde hace mucho tiempo visitando este foro y esta duda si necesito comentarla porque no lo logro sacarla.


Tengo dos tablas que son exactamente iguales, la diferencia es que una en un campo tiene 74 registros y la otra tiene 54 registros.

Necesito comparar el campo "long_address" para que me muestre los long_address que no están en la dos tablas.
Solo consigo que me muestre los que están en ambos.


Tabla con 54 registros en el campo "long_address".
Código MySQL:
Ver original
  1. SELECT  devices.long_address FROM devices

Tabla con 74 registros en el campo "long_address".
Código MySQL:
Ver original
  1. SELECT  devices.long_address FROM devices2

Esta sentencia me muestra 56 registros que son comunes en las dos tablas, pero necesito los registros que no son comunes en las dos tablas.
Código MySQL:
Ver original
  1. SELECT devices2.long_address
  2. FROM devices2 INNER JOIN devices ON
  3. devices2.long_address=devices.long_address


Necesito esos registros para ahora realizar cambio sobre ellos, pero sin saber cuales son me veo fatal porque tener que comprar mac a mac, es una locura.


Creo que he dado con la tecla.
Código MySQL:
Ver original
  1. SELECT devices2.long_address
  2. FROM devices2
  3. WHERE devices2.long_address NOT IN (SELECT devices.long_address FROM devices)

Un saludo y gracias!

Última edición por magines117; 22/05/2013 a las 05:15 Razón: USAR HIGHLIGHT "MySQL"
  #2 (permalink)  
Antiguo 22/05/2013, 05:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 13 años, 6 meses
Puntos: 2656
Respuesta: DUDA: sql comparar dos tablas

LEF JOIN, no INNER JOIN:
Código MySQL:
Ver original
  1. SELECT D2.long_address
  2. FROM devices2 D2 LEFT JOIN devices D1 ON D2.long_address = D1.long_address
  3. WHERE D1.long_address IS NULL
Es un caso típico de buscar lo que no está. LEFT JOIN devuelve todo lo de la primera tabla tenga o no relacion con la segunda, poniendo nulos en los valores de la segunda que no estén relacionados.
Entonces simplemente se filtran por NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/05/2013, 05:18
 
Fecha de Ingreso: mayo-2013
Mensajes: 3
Antigüedad: 8 años
Puntos: 0
Respuesta: DUDA: sql comparar dos tablas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
LEF JOIN, no INNER JOIN:
Código MySQL:
Ver original
  1. SELECT D2.long_address
  2. FROM devices2 D2 LEFT JOIN devices D1 ON D2.long_address = D1.long_address
  3. WHERE D1.long_address IS NULL
Es un caso típico de buscar lo que no está. LEFT JOIN devuelve todo lo de la primera tabla tenga o no relacion con la segunda, poniendo nulos en los valores de la segunda que no estén relacionados.
Entonces simplemente se filtran por NULL.

Probé algo parecido a lo tuyo pero seguramente me confundí en algunas cosas.

Muchas gracias por la ayuda.


Saludos

Etiquetas: sql, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:22.