Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2013, 17:23
NA1TM3R
 
Fecha de Ingreso: agosto-2008
Mensajes: 82
Antigüedad: 15 años, 8 meses
Puntos: 4
Exclamación Mostrar todos los datos de 2 tablas con diferentes registros.

Saludos.

El motivo por el cual escribo es el siguiente:

Tengo dos tablas (TABLE_A, TABLE_B).

TABLE_A tiene 3 columnas.
TABLE_B tiene 5 columnas.

Necesito unir las tablas de tal manera que pueda mostrar las 8 columnas con sus respectivos datos.

El problema es que el total de registros entre TABLE_A y TABLE_B son distintos y necesito mostrarlos todos (sin repetir registros).

Por ejemplo:

Tanto en TABLE_A como en TABLE_B tengo 143 registros.
De esos 143, tengo:
- 89 que coinciden en ambas tablas.
- 54 en TABLE_A que no aparecen en TABLE_B.
- 55 en TABLE_B que no aparecen en TABLE_A.

Lo cual me da un total de 198 registros, los cuales no logro conseguir con una buena consulta.

La consulta que tengo es:

Código MySQL:
Ver original
  1. SELECT A.ID, A.COL2, A.COL3, B.ID, B.COL2, B.COL3, B.COL4, B.COL5
  2. FROM TABLE_A A
  3. INNER JOIN TABLE_B B USING(ID)
  4.  
  5.  
  6. SELECT A.ID, A.COL2, A.COL3, NULL, NULL, NULL, NULL, NULL
  7. FROM TABLE_A A
  8. WHERE A.ID NOT IN(
  9.     SELECT B.ID
  10.     FROM TABLE_B B
  11. )
  12.  
  13.  
  14. SELECT ID, NULL, NULL, NULL, B.COL2, B.COL3, B.COL4, B.COL5
  15. FROM TABLE_B B
  16. WHERE B.ID NOT IN(
  17.     SELECT A.ID
  18.     FROM TABLE_A A 
  19. );

Obviamente es una consulta demasiado larga y tarda mucho, quisiera saber si es posible mejorarla para reducir la duración de la consulta.

De antemano muchas gracias.