Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/11/2014, 07:11
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta de disponibilidad

Vamos por el principio: MySQL no es PHP, ni tiene nada que ver con PHP, así como PHP tampoco es parte ni está emparentado con MySQL. Son sistemas diferenciados.
MySQL es un Sistema de Gestion de Bases de Datos o DBMS, que es accedido por diferentes lenguajes a través de recursos de esos lenguajes, pero es un servidor.
MySQL, lo mismo que otros DBMS sólo entiende SQL y una serie de extensiones al mismo, pero no interpreta otros lenguajes.

Las normas del foro (leelas por favor), expresamente dicen que no se tratan temas de programación en los foros de BBD. De ese modo mantenemos la coherencia de los temas y sus tratamientos, y tu no desperdicias el tiempo preguntando cosas en el foro equivocado, en especial porque usar MySQL no implica obligatoriamente usar PHP, y ni siquiera se necesita programar en ningun lenguaje. Además, los expertos en PHP están en el foro de PHP.

Dicho esto, y yendo a tu problema, lo que te dije de INNER JOIN no aplica a PHP. Estoy hablando de SQL puro, y según lo que posteaste sería así:

Código SQL:
Ver original
  1. SELECT * FROM vehiculos V INNER JOIN vehiculos_ocupados VO ON V.id = VO.id_vehiculo
  2. WHERE id_vehiculo = 24
  3.     AND sede = 1
  4.     AND fecha_entrega <= '2014-12-10'
  5.     AND hora_entrega < '18:00:00'
  6.     AND fecha_devolucion >= '2014-12-03'
  7.     AND hora_devolucion >= '17:59:59'
  8. ORDER BY grupo, fecha_entrega, hora_entrega;

Hacer múltiples consultas para algo que la base de datos puede resolverlo con una única consulta, es ineficiencia. El SQL tiene muchísimos recursos para procesar datos que son mejores que tiene un lenguaje de programación, porque fue diseñado para eso.
Cada cosa tiene su ámbito de dominio. Hay cosas que podría hacer la base que el lenguaje de programación las hace mejor, y otras donde el dominio del DBMS es absoluto. La experiencia y los manuales te pueden ayudar a decidir que cosa se hace en donde.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/11/2014 a las 07:17