Hola cnyx:
Lo que quieres hacer es lo que hace la UNION, no mencionas qué BD estás utilizando, pero esta operación es soportada por casi todos los manejadores, así es que no deberías tener problemas para implementarlo. Checa este script en MySQL:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.13 sec)
Query OK, 3 rows affected (0.02 sec)
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
+------+-------------+
Query OK, 0 rows affected (0.11 sec)
Query OK, 3 rows affected (0.01 sec)
+------+-------------+
| id | descripcion |
+------+-------------+
| 2 | dos |
| 3 | otro tres |
| 4 | cuatro |
+------+-------------+
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
| 3 | otro tres |
| 4 | cuatro |
+------+-------------+
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
| 2 | dos |
| 3 | otro tres |
| 4 | cuatro |
+------+-------------+
Observa que el
registro 2 existe tanto en la tabla1 como en al tabla2
CON LA MISMA DESCRIPCIÓN, al hacer una UNION simple (primer consulta), los registros duplicados se eliminan (sólo aparece una vez), observa también que el
registro 3 también aparece en las dos tablas, pero
TIENE UNA DESCRIPCIÓN DIFERENTE, por lo tanto es tratado como un registro diferente.
Si quieres que aparezcan los registros duplicados simplemente haz un UNION ALL en lugar de uno sencillo (segunda consulta).
Saludos
Leo.