Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/07/2011, 08:23
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Obtener registros con mismo valor en columna pero diferente en otra

Hola HarryP:

No sé si entendí correctamente cual es el problema, pero veamos si es más o menos esto. Según lo que te entendí hay que buscar todas las n_tareas que tengan asociadas los id_lloc 1 y 2.

Con los registros que pones de ejemplo entonces la consulta resultante debería ser algo como esto:

Código:
n_tarea
-----------------
1
2
Para el caso de la n_tarea = 1 tienes los siguientes datos:

Código:
n_tarea  id_lloc
-------  -------
      1        1
      1        2
      1        3
Aquí se observa que tiene tanto el id_lloc 1 y 2 (además de un 3, pero que no afecta el resultado)

Para la n_tarea_2 tenemos los siguientes datos:

Código:
n_tarea  id_lloc
-------  -------
      2        1
      2        2
Es decir también cumple con la condición.

Para el caso de la n_tarea 3 tenemos los siguientes datos:

Código:
n_tarea  id_lloc
-------  -------
      3        1
Este n_tarea no cumple con la condición, pues no tiene la id_lloc = 2

Si estoy en lo correcto y esto es lo que necesitas, lo puedes obtener de la siguiente manera:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE IF NOT EXISTS lloc (
  2.     ->   id_lloc INT NOT NULL,
  3.     ->   n_tarea INT NOT NULL
  4.     ->  ) ENGINE=INNODB;
  5. Query OK, 0 rows affected (0.09 sec)
  6.  
  7. mysql> INSERT INTO lloc VALUES (1,1),(1,2),(1,3),(2,1),(2,2),(3,1);
  8. Query OK, 6 rows affected (0.07 sec)
  9. Records: 6  Duplicates: 0  Warnings: 0
  10.  
  11. mysql> select * from lloc;
  12. +---------+---------+
  13. | id_lloc | n_tarea |
  14. +---------+---------+
  15. |       1 |       1 |
  16. |       1 |       2 |
  17. |       1 |       3 |
  18. |       2 |       1 |
  19. |       2 |       2 |
  20. |       3 |       1 |
  21. +---------+---------+
  22. 6 rows in set (0.00 sec)
  23.  
  24. mysql> SELECT n_tarea FROM lloc
  25.     -> WHERE id_lloc IN (1,2) GROUP BY n_tarea HAVING COUNT(*) = 2;
  26. +---------+
  27. | n_tarea |
  28. +---------+
  29. |       1 |
  30. |       2 |
  31. +---------+
  32. 2 rows in set (0.00 sec)

Dale un vistazo para ver si es lo que necesitas.

Saldos
Leo