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

Problema con una consulta

Estas en el tema de Problema con una consulta en el foro de Mysql en Foros del Web. buenas, estoy estudiando BDD y estamos con SQL en Mysql Server 5.1 me gustaria que me pudierais ayudar a resolver esta consulta, la base de ...
  #1 (permalink)  
Antiguo 19/02/2010, 13:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 2 meses
Puntos: 1
Problema con una consulta

buenas, estoy estudiando BDD y estamos con SQL en Mysql Server 5.1 me gustaria que me pudierais ayudar a resolver esta consulta, la base de datos es la siguiente:


PATROCINADOR (Código_Patrocinador, Nombre, Tipo_Entidad)
PROYECTO (Código_Proyecto, Código_Patrocinador#, Nombre, Fecha_Inicio, Fecha_Fin, Presupuesto)
ASIGNADO_A (Código_Proyecto, DNI_Investigador, Fecha_Inicio, Fecha_Fin, Tipo_Participación)
INVESTIGADOR (DNI_Investigador, Nombre, Ciudad, Teléfono)

la consulta es esta:

1.Nombre de aquellos investigadores que trabajan en todos los proyectos.

Alguien me puede echar una mano? llevo un par de dias dandole vueltas y no soy capaz de sacarlo.
Gracias de antemano.
  #2 (permalink)  
Antiguo 20/02/2010, 11:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema con una consulta

SELECT i.Nombre FROM INVESTIGADOR i INNER JOIN ASIGNADO_A a USING(DNI_Investigador) INNER JOIN PROYECTO p USING(Código_Proyecto) GROUP BY i.DNI_Investigador HAVING COUNT(DISTINCT a.Codigo_Proyecto) = SELECT COUNT(DISTINCT p.Codigo_Proyecto) FROM PROYECTO

No la he probado.
Creo que otra opción más eficiente sería con un doble anidamiento de NON EXISTS.
Este es un ejemplo sacado del manual de MySqL
Cita:
•¿Qué clase de tienda hay en todas las ciudades?
SELECT DISTINCT store_type FROM Stores S1
WHERE NOT EXISTS (
SELECT * FROM Cities WHERE NOT EXISTS (
SELECT * FROM Cities_Stores
WHERE Cities_Stores.city = Cities.city
AND Cities_Stores.store_type = Stores.store_type));
El último ejemplo es un doblemente anidado NOT EXISTS . Esto es, tiene una cláusula NOT EXISTS dentro de otra NOT EXISTS. Formalmente, responde a la pregunta “¿existe una ciudad con una tienda que no esté en Stores?” Sin embargo, es más fácil decir que un NOT EXISTS responde a la pregunta “¿es x TRUE para todo y?”

Haz alguna prueba y creo que lo sacarás

Etiquetas: Ninguno
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 10:16.