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

Unir dos consultas y mostrar valores diferentes.

Estas en el tema de Unir dos consultas y mostrar valores diferentes. en el foro de Mysql en Foros del Web. Saludos compañeros del foro. Fijense que necesito unir el resultado de dos sentencias SELECT, pero adicionalmente requiero que sólo se visualizen aquellos valores que sean ...
  #1 (permalink)  
Antiguo 23/10/2008, 15:31
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta Unir dos consultas y mostrar valores diferentes.

Saludos compañeros del foro. Fijense que necesito unir el resultado de dos sentencias SELECT, pero adicionalmente requiero que sólo se visualizen aquellos valores que sean diferentes. Por ejemplo, sean las tablas A y B los resultados:

Query A
----------------
campo
----------------
1
2
3
4
0

Query B
-----------------
campo
-----------------
1
3
4

Obtener lo siguiente:

Query C
-----------------
campo
-----------------
2
0

Lo he intentado con UNION, pero al hacerlo sólamente me devuelve los campos identicos (incluyendo aquellos que no esten contenidos en algun resultado) o todos (me los duplica). ¿Alguna idea?
__________________
Nunca seas sabio en tu propia opinión.

Última edición por Jad-Neo; 23/10/2008 a las 15:36
  #2 (permalink)  
Antiguo 23/10/2008, 15:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Unir dos consultas y mostrar valores diferentes.

Entiendo que quieres sacar las que no están en las dos tablas. Una opción sería esta:
Código sql:
Ver original
  1. (SELECT campo FROM a WHERE campo NOT  IN (SELECT campo FROM b))
  2. UNION
  3. (SELECT campo FROM b WHERE campo NOT  IN (SELECT campo FROM a))
  4. ORDER BY campo
  #3 (permalink)  
Antiguo 23/10/2008, 15:53
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Unir dos consultas y mostrar valores diferentes.

Gracias, lo voy a probar. Saludos.
__________________
Nunca seas sabio en tu propia opinión.
  #4 (permalink)  
Antiguo 23/10/2008, 16:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Unir dos consultas y mostrar valores diferentes.

Si por tu versión de MySQL no te va, usa esta otra. Hará lo mismo y tal vez más rápido.

Código sql:
Ver original
  1. (SELECT a.campo FROM a LEFT JOIN b ON a.campo = b.campo WHERE b.campo IS NULL )
  2. UNION
  3. (SELECT b.campo FROM b LEFT JOIN a ON b.campo = a.campo WHERE a.campo IS NULL )
  4. ORDER BY campo
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 06:56.