Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2017, 10:57
daviserraalonso
 
Fecha de Ingreso: diciembre-2015
Mensajes: 36
Antigüedad: 8 años, 4 meses
Puntos: 0
Consulta con except

Hola a todos, recurro en busca de vuestra ayuda.

tengo esta estructura de base de datos, no se si será la más correcta.

Código MySQL:
Ver original
  1. CREATE TABLE `citas` (
  2.   `id` int(10) NOT NULL,
  3.   `nombrePaciente` varchar(20) NOT NULL,
  4.   `dia` varchar(20) NOT NULL,
  5.   `hora` varchar(20) NOT NULL
  6. )
  7.  
  8.  
  9. INSERT INTO `citas` (`id`, `nombrePaciente`, `dia`, `hora`) VALUES
  10. (1, 'pepe', '2017-03-08', '23:00');
  11.  
  12.  
  13. CREATE TABLE `citasdadas` (
  14.   `paciente` int(10) NOT NULL,
  15.   `hora` time(2) NOT NULL
  16. )
  17.  
  18.  
  19.  
  20. INSERT INTO `citasdadas` (`paciente`, `hora`) VALUES
  21. (1, '23:00:00.00');
  22.  
  23.  
  24. CREATE TABLE `horas` (
  25.   `horas` time(2) NOT NULL
  26. )
  27.  
  28. INSERT INTO `horas` (`horas`) VALUES
  29. ('08:00:00.00'),
  30. ('09:00:00.00'),
  31. ('10:00:00.00'),
  32. ('11:00:00.00'),
  33. ('12:00:00.00'),
  34. ('13:00:00.00'),
  35. ('14:00:00.00'),
  36. ('15:00:00.00'),
  37. ('16:00:00.00'),
  38. ('17:00:00.00'),
  39. ('18:00:00.00'),
  40. ('19:00:00.00'),
  41. ('20:00:00.00'),
  42. ('21:00:00.00'),
  43. ('22:00:00.00'),
  44. ('23:00:00.00'),
  45. ('00:00:00.00');

bien, despues de ver la estructura de la base de datos, lo que necesito es hacer una consulta (había pensado con except, pero no se como hacerla) que lo que me haga sea en "citasdadas" comprobar las horas que ya están pilladas y restarselas (por decirlo de alguna manera) a la tabla de horas que es donde están todas las horas del día. Para que quiero hacer eso¿?? para que en mi formulario, hay un botón que dice horas disponibles, y haga un listado de las horas que no están pilladas y así poder asignar horas a las citas.

esta sería la consulta que había pensado

Código SQL:
Ver original
  1. SELECT hora FROM horas
  2.     EXCEPT
  3. (SELECT hora FROM horas)

gracias de ante mano.

Última edición por gnzsoloyo; 23/03/2017 a las 11:14 Razón: faltaba consulta except