Os pongo en situación:
Tengo una tabla llamada ClienteAuto:
Código SQL:
Ver originalCREATE TABLE ClienteAuto
(Fk_idCliente CHAR(9) NOT NULL,
Fk_matricula_auto VARCHAR(15) NOT NULL,
fecha_inicio_alquiler DATE NOT NULL,
fecha_final_alquiler DATE NOT NULL,
CONSTRAINT fk_idCliente FOREIGN KEY(Fk_idCliente) REFERENCES Clientes (idCliente),
CONSTRAINT fk_matricula_auto FOREIGN KEY(Fk_matricula_auto) REFERENCES Autos (matricula_auto),
PRIMARY KEY (Fk_idCliente, Fk_matricula_auto)
)
He insertado varios registros en la misma y ahora mi intención es la de hacer una consulta en la que yo le doy una serie de matriculaS, una fecha_inicio_alquiler y una fecha_final_alquiler; y la consulta me devuelva la o las matriculas que NO cumplen con dichos requisitos.
A ver si me explico... la intención que hay detrás de todo esto es que yo le de una o unas matriculas y las fechas y la consulta me responda cuales de esas matriculas (autos) NO están alquilados en el periodo de tiempo que le propongo a través de las fechas.
Esta es la consulta que tengo hecha:
Código SQL:
Ver originalSELECT `Fk_matricula_auto`
FROM `clienteauto`
WHERE `Fk_matricula_auto` = 'abb1414' AND `Fk_matricula_auto` NOT IN
(SELECT `Fk_matricula_auto`
FROM `clienteauto`
WHERE `Fk_matricula_auto` = 'abb1414' AND fecha_inicio_alquiler > '2006-06-05' AND `fecha_final_alquiler` <= '2006-06-07')
Esa consulta reconoce que en ese periodo de tiempo:
fecha_inicio_alquiler > '2006-06-05' and `fecha_final_alquiler` <= '2006-06-07'
el auto con matricula 'abb1414' está alquilado y por lo tanto no me devuelve la matricula (al menos así lo entiendo yo) pero quiero poder hacerlo no con una sino con varias matriculas y si alguno de esos autos NO está alquilado, me devuelva dicha matricula. Gracias.