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.