Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con una consulta para recuperar datos

Estas en el tema de Problema con una consulta para recuperar datos en el foro de Mysql en Foros del Web. Hola Comunidad, basicamente necesito recuperar de una tabla relacion los id_centro que cumplen con la condicion que comparta la condicion de calidad_1 y calidad_2. Desde ...
  #1 (permalink)  
Antiguo 05/01/2012, 13:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 111
Antigüedad: 15 años, 10 meses
Puntos: 1
Problema con una consulta para recuperar datos

Hola Comunidad, basicamente necesito recuperar de una tabla relacion los id_centro que cumplen con la condicion que comparta la condicion de calidad_1 y calidad_2. Desde ya muchas gracias estoy tratando de hacer la consulta pero no doy con el resultado. Muchas gracias desde ya!


+--------------+-------------+
| id_calidad | calidad |
+--------------+-------------+
| 1 | calidad_1 |
| 2 | calidad_2 |
+--------------+-------------+

+--------------+-------------+
| id_centro | centro |
+--------------+-------------+
| 1 | centro_1 |
| 2 | centro_2 |
+--------------+-------------+

tabla relacion:

+---+---------------+-------------+
id | id_calidad | id_centro |
+---+---------------+-------------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
+---+--------------+-------------+
  #2 (permalink)  
Antiguo 05/01/2012, 16:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problema con una consulta para recuperar datos

Hola elalmacen60:

Hay varias formas para abordar este problema, y se ha tratado muchas veces en el foro... te recomiendo que para la próxima vez te tomes unos segundos para buscar en el foro a ver das con alguna solución previa y así evitar temas duplicados.

Checa este script:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE calidad_centro (id INT, id_calidad INT, id_centro INT);
  2. Query OK, 0 rows affected (0.17 sec)
  3.  
  4. mysql> INSERT INTO calidad_centro VALUES (1, 1, 1),(2, 2, 1),
  5.     -> (3, 1, 2),(4, 3, 2),(5, 1, 3),(6, 2, 3),(7, 3, 3), (8, 1, 4);
  6. Query OK, 8 rows affected (0.03 sec)
  7. Records: 8  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> SELECT * FROM calidad_centro;
  10. +------+------------+-----------+
  11. | id   | id_calidad | id_centro |
  12. +------+------------+-----------+
  13. |    1 |          1 |         1 |
  14. |    2 |          2 |         1 |
  15. |    3 |          1 |         2 |
  16. |    4 |          3 |         2 |
  17. |    5 |          1 |         3 |
  18. |    6 |          2 |         3 |
  19. |    7 |          3 |         3 |
  20. |    8 |          1 |         4 |
  21. +------+------------+-----------+
  22. 8 rows in set (0.00 sec)
  23.  
  24. mysql> SELECT id_centro, COUNT(*) FROM calidad_centro CC
  25.     -> WHERE id_calidad IN (1, 2)
  26.     -> GROUP BY id_centro
  27.     -> HAVING COUNT(*) > 1;
  28. +-----------+----------+
  29. | id_centro | COUNT(*) |
  30. +-----------+----------+
  31. |         1 |        2 |
  32. |         3 |        2 |
  33. +-----------+----------+
  34. 2 rows in set (0.00 sec)

Observa que los centros 1 y 3 son los únicos que tienen registradas las calidades 1 y 2... En el caso del centro 3 además de las dos calidades deseadas (1 y 2) posé una calidad adicional.

Para el caso del centro 2 a pesar que tiene dos registros en la tabla relación, solo uno de ellos corresponde a unas de las calidades, la calidad 3 no se contabiliza. para el caso del centro 4 este tampoco posee las dos calidades deseadas.

Dale un vistazo al código y si continuas con dudas utiliza la herramienta de búsqueda del foro y o preguntale a San GOOGLE, estoy seguro que te ayudará a encontrar la respuesta.

Saludos
Leo.
  #3 (permalink)  
Antiguo 05/01/2012, 17:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 111
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con una consulta para recuperar datos

Gracias por tu tiempo. De seguro lo voy a chequear!!!

Etiquetas: tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:18.