Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/10/2010, 06:26
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Una sola consulta para dos tablas

Ahora se comprende. Por más que contengan la misma información ambas tablas representan entidades distintas: Vivos y muertos, por decirlo coloquialmente... :)

Las reglas básicas de UNION son simples:
- Las consultas deben contener la misma cantidad de campos. Ni más, ni menos.
- Los campos deben aparecer en el mismo orden y ser del mismo dominio (representar lo mismo conceptualmente), por lo que deben tener el mismo tipo de columna y rango representable.

En tu caso sería un simple:
Código MySQL:
Ver original
  1. FROM tabla1
  2. FROM tabla2;
Esto encadena los resultados de la primera con los de la segunda, eliminando duplicaciones (datos de registros con el mismo cotenido considerado campo a campo).
Si quieres que salgan todos, incluyendo los datos solapados entre tablas, debes usar UNION ALL:
Código MySQL:
Ver original
  1. FROM tabla1
  2. FROM tabla2;
Atención: Un ORDER BY puesto entremedio no produce efecto, porque en el UNION el ORDER usado es el que posee la última tabla invocada.
Esto es posible alterarlo manipulando subconsultas, pero en principio, si quieres ordenar, por el ORDER BY al final.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/10/2010 a las 14:45