Hola!
Hoy, despues de varios dias sin dormir, he conseguido hacer la puñetera consulta. Así me ha quedado:
Código:
$consulta="SELECT v.* FROM vehicles v
LEFT JOIN reserves r ON v.matricula =r.matricula
WHERE v.matricula !=
(SELECT matricula FROM reserves WHERE
('".$dia_recollida_BBDD."' BETWEEN data_inici AND data_fi)
OR ('".$dia_desti_BBDD."' BETWEEN data_inici AND data_fi))
AND v.disponibilitat = 1
AND v.oficina = '".$oficina_recollida."'
AND v.classe = '".$tipus_vehicle."'";
$resultat= mysql_query ($consulta);
if (mysql_num_rows($resultat) == 0){
$consulta="SELECT * FROM vehicles WHERE disponibilitat = 1
AND oficina = '".$oficina_recollida."'
AND classe = '".$tipus_vehicle."'";
$resultat= mysql_query ($consulta);
}
En la primera consulta saco los vehiculos que no coinciden con ninguna reserva... el problema es que si no hay alguna coincidencia con alguna reserva no me devuelve ninguna matricula, con lo que la consulta no arroja resultados.
Para eso uso la 2ª consulta. Si no hay resultados en la primera consulta es que todos los vehiculos de esa clase estan disponibles para ese periodo de tiempo. Pues un SELECT * y arreglado.
Dios! Por fin lo he conseguido!!
Muchas gracias a todos los que me han ayudado, que aunque no ha sido la solucion definitiva me han marcado el camino para llegar a ella.
Saludos!
Pd.- Doy por cerrado el hilo.