Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/02/2015, 15:48
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Principiante SUMA DOS CAMPOS CON CONDICONAL

Hola clnetcom:

No me queda muy claro, pero algunos detalles que tienes que revisar:

Primero, NO ESTÁS COLOCANDO NINGUNA RELACIÓN ENTRE TUS TABLAS, por lo tanto se está realizando un PRODUCTO CARTESIANO entre las tablas... checa este ejemplo:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |      1 | uno    |
  6. |      2 | dos    |
  7. |      3 | tres   |
  8. +--------+--------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tabla2;
  12. +--------+--------+
  13. | campo1 | campo2 |
  14. +--------+--------+
  15. |      1 | one    |
  16. |      2 | two    |
  17. +--------+--------+
  18. 2 rows in set (0.00 sec)

Observa que hay una relación entra las tablas, dada por el CAMPO1, para obtener su descripcion en español y en inglés... Ahora, tal como lo estás haciendo tú, es decir, poniendo las dos tablas en el FROM observa qué pasa:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1, tabla2;
  2. +--------+--------+--------+--------+
  3. | campo1 | campo2 | campo1 | campo2 |
  4. +--------+--------+--------+--------+
  5. |      1 | uno    |      1 | one    |
  6. |      1 | uno    |      2 | two    |
  7. |      2 | dos    |      1 | one    |
  8. |      2 | dos    |      2 | two    |
  9. |      3 | tres   |      1 | one    |
  10. |      3 | tres   |      2 | two    |
  11. +--------+--------+--------+--------+
  12. 6 rows in set (0.00 sec)

Lo mismo pasa aunque filtes un registro (como lo haces con los del equipo = 'Z')

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1, tabla2 WHERE tabla2.campo1 = 1;
  2. +--------+--------+--------+--------+
  3. | campo1 | campo2 | campo1 | campo2 |
  4. +--------+--------+--------+--------+
  5. |      1 | uno    |      1 | one    |
  6. |      2 | dos    |      1 | one    |
  7. |      3 | tres   |      1 | one    |
  8. +--------+--------+--------+--------+
  9. 3 rows in set (0.00 sec)

Esto es un producto cartesiano... Lo que debes hacer es especificar CÓMO ESTÁN RELACIONADAS ESTAS TABLAS, de preferencia utilizando JOINS en lugar de la forma en que tú lo estás haciendo.

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1, tabla2
  2.     -> WHERE
  3.     -> tabla1.campo1 = tabla2.campo1 AND
  4.     -> tabla2.campo1 = 1;
  5. +--------+--------+--------+--------+
  6. | campo1 | campo2 | campo1 | campo2 |
  7. +--------+--------+--------+--------+
  8. |      1 | uno    |      1 | one    |
  9. +--------+--------+--------+--------+
  10. 1 row in set (0.00 sec)
  11.  
  12. mysql> SELECT * FROM tabla1
  13.     -> INNER JOIN tabla2 ON tabla1.campo1 = tabla2.campo1
  14.     -> WHERE
  15.     -> tabla2.campo1 = 1;
  16. +--------+--------+--------+--------+
  17. | campo1 | campo2 | campo1 | campo2 |
  18. +--------+--------+--------+--------+
  19. |      1 | uno    |      1 | one    |
  20. +--------+--------+--------+--------+
  21. 1 row in set (0.00 sec)

Haz la prueba y nos comentas.

Saludos
Leo