Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2011, 17:16
GNULinux
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 6 meses
Puntos: 0
Necesito ayuda con unas consultas que no me salen.

Que tal, necesito un poco de ayuda con una consulta que estoy tratando de hacer.

Tengo las siguientes tablas y sus respectivas relaciones:

http://img13.imageshack.us/i/dibujoyee.jpg/
http://img13.imageshack.us/img13/8404/dibujoyee.jpg (por si no se ve la primera)

Lo que necesito hacer son 3 cosas:

1- Listar aquellas empresas (solo la razón social) que estén relacionadas con aunque sea uno de los servicios que se detallan en la sentencia SQL (en el IN). Lo que he hecho es relacionar todas las tablas con INNER JOIN y en el IN() detallar las coincidencias:

Código MySQL:
Ver original
  1. SELECT empresa.razon_soc AS Empresa FROM
  2. empresa INNER JOIN emp_serv ON emp_serv.id_empresa=empresa.id INNER JOIN emp_act ON emp_act.id_empresa=empresa.id INNER JOIN servicio ON emp_serv.id_servicio=servicio.id INNER JOIN actividad ON emp_act.id_actividad=actividad.id WHERE servicio.nombre IN ('Comunicación', 'Hosting')

Esta sentencia, si bien recupera la empresa correcta (google), me la lista tres veces, es decir, me devuelve 3 registros iguales (google, google, google,). Lo que yo necesito es que me devuelva un solo registro por cada empresa que este relacionada con alguno de esos dos servicios.

2- Por otro lado, necesito hacer los mismo que lo anterior, pero restrictivamente, es decir, que la sentencia me devuelva todas las empresas que están relacionadas con TODOS los servicios que se detallen en la sentencia y no solo con alguno de ellos.

3- Finalmente, necesito hacer lo mismo que los dos puntos anteriores, pero que los servicios correspondiente se detallen a partir de una variable. Creo saber como se hace, pero por las dudas lo pregunto.

Les agradezco por su tiempo.
Saludos.

Última edición por GNULinux; 14/03/2011 a las 18:08