Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/11/2011, 11:59
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años, 2 meses
Puntos: 447
Respuesta: como unir dos consultas

Hola de nuevo:

No entendí bien cómo relacionarías tus tablas, es decir, con tus datos de ejemplo ambos pertenecen a la clase ANZUELOS, pero ¿cómo deseas la salida? si entendí bien tu salida debería la unión de las dos consultas cierto???

checa esto a ver si es lo que necesitas:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla1 (id INT, descripcion VARCHAR(10), cantidad INT);
  2. Query OK, 0 rows affected (0.11 sec)
  3.  
  4. mysql> INSERT INTO tabla1 VALUES (1, 'uno', 10), (2, 'dos', 20),
  5.     -> (3, 'tres', 30);
  6. Query OK, 3 rows affected (0.06 sec)
  7. Records: 3  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> SELECT * FROM tabla1;
  10. +------+-------------+----------+
  11. | id   | descripcion | cantidad |
  12. +------+-------------+----------+
  13. |    1 | uno         |       10 |
  14. |    2 | dos         |       20 |
  15. |    3 | tres        |       30 |
  16. +------+-------------+----------+
  17. 3 rows in set (0.00 sec)
  18.  
  19. mysql> CREATE TABLE tabla2 (id INT, descripcion VARCHAR(10), cantidad INT);
  20. Query OK, 0 rows affected (0.09 sec)
  21.  
  22. mysql> INSERT INTO tabla2 VALUES  (2, 'dos', 15), (3, 'tres', 25),
  23.     -> (4, 'cuatro', 40);
  24. Query OK, 3 rows affected (0.02 sec)
  25. Records: 3  Duplicates: 0  Warnings: 0
  26.  
  27. mysql> SELECT * FROM tabla2;
  28. +------+-------------+----------+
  29. | id   | descripcion | cantidad |
  30. +------+-------------+----------+
  31. |    2 | dos         |       15 |
  32. |    3 | tres        |       25 |
  33. |    4 | cuatro      |       40 |
  34. +------+-------------+----------+
  35. 3 rows in set (0.00 sec)
  36.  
  37. mysql> SELECT T.id, T.descripcion, SUM(T.cantidad) total
  38.     -> FROM (
  39.     -> SELECT * FROM tabla1
  40.     -> UNION ALL
  41.     -> SELECT * FROM tabla2
  42.     -> ) T
  43.     -> GROUP BY T.id, T.descripcion;
  44. +------+-------------+-------+
  45. | id   | descripcion | total |
  46. +------+-------------+-------+
  47. |    1 | uno         |    10 |
  48. |    2 | dos         |    35 |
  49. |    3 | tres        |    55 |
  50. |    4 | cuatro      |    40 |
  51. +------+-------------+-------+
  52. 4 rows in set (0.01 sec)

Observa que los registros 2 y 3 se repiten en ambas tablas, el 1 sólo aparece en la tabla1 y el 4 sólo en la tabla2... los registros que aparen en la tabla SE SUMARIZAN, para dejar un registro único... si esta no es la salida que pretendes coloca también cómo quieres la salida a partir de los datos que pusiste de ejemplo.

Saludos
Leo