Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2015, 18:30
Avatar de CarlosMex
CarlosMex
 
Fecha de Ingreso: mayo-2005
Mensajes: 67
Antigüedad: 19 años, 6 meses
Puntos: 0
En MYSQL, seleccionar todas las empresas que cuenten con servicios, excluyendo dos

Estimados amigos:

Seguro este tema ya se abordó antes, sólo que no he sabido cómo llegar a él.

Tengo problemas con el resultado de una consulta para seleccionar todo, excepto los que tenga que excluir. Tengo las siguientes tres consultas, no se cómo resolver la número 3:

Consulta 1.- Seleccionar todas las empresas por servicio que den Consultoría. Aquí no tengo problemas.
Consulta 2.- Seleccionar todas las empresas por servicio que den Mantenimiento. Aquí tampoco tengo problemas.
Consulta 3.- Seleccionar todas las empresas que den servicios, pero excluir las que den Consultoría y Mantenimiento. Aquí es donde tengo problema.

Tengo una tabla empresas

Código:
idempresa | nombreEmpresa
1	|	Empresa A
2	|	Empresa B
3	|	Empresa C
4	|	Empresa D
5	|	Empresa E
y otra tabla servicios,

Código:
idservicio | tipoServicio
1	|	consultoria
2	|	mantenimiento
3	|	refacciones
4	|	herrería
5	|	carpinteria
6	|	plomería
7	|	albañilería

para vincular todos los servicios que ofrece una empresa lo hago con la tabla servicios_empresa

Código:
idempresa | idservicio

1	|	1
1	|	3
1	|	6
2	|	3
2	|	7
2	|	5
3	|	1
4	|	2
5	|	2
5	|	3
En la consulta 1, seleccionar las que ofrecen consultoría, lo resuelvo así:

Código:
SELECT em.idempresa, em.nombreEmpresa, ser.idservicio, ser.tipoServicio 
FROM empresas AS em, servicios AS ser, servicios_empresa AS serem
WHERE em.idempresa = serem.idempresa AND  ser.idservicio = serem.idservicio AND ser.idservicio= 1
En la consulta 2, seleccionar las que ofrecen mantenimiento, lo resuelvo así:

Código:
SELECT em.idempresa, em.nombreEmpresa, ser.idservicio, ser.tipoServicio 
FROM empresas AS em, servicios AS ser, servicios_empresa AS serem
WHERE em.idempresa = serem.idempresa AND  ser.idservicio = serem.idservicio AND ser.idservicio= 2
En la consulta 3 debo seleccionar todos, excepto los que tienen el idservicio 1 y 2.

¿Podrían ayudarme?
Gracias por adelantado.
__________________
CarlosMex