Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

comprobar que un registro no se encuentre en una tabla

Estas en el tema de comprobar que un registro no se encuentre en una tabla en el foro de Mysql en Foros del Web. Hola gente, necesito un kapo en sql que me pueda ayudar con lo siguiente Tengo una tabla donde guardo datos de un auto y otra ...
  #1 (permalink)  
Antiguo 25/07/2008, 08:25
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 19 años, 5 meses
Puntos: 0
comprobar que un registro no se encuentre en una tabla

Hola gente, necesito un kapo en sql que me pueda ayudar con lo siguiente

Tengo una tabla donde guardo datos de un auto y otra tabla guardo los alquileres de esos autos. El campo en comun y unico entre las dos tamblas es la patente del auto(dominio). Ya tengo la consulta para ver que auto esta alquilado o no en un rango de fechas. Esta consulta la realizo solo en la tabla de alquileres.

La pregunta es como hago para saber que auto no esta alquilado en un rango de fechas siendo que quizas haya autos que no se encuantran dentro de la tabla de reservas x que no fueron alquilados nunca

En esta tabla guardo los datos del vehiculo:
tab_flotas
nombre, dominio,etc

en esta guardo los alquileres
tab_flotas_reservas
Tab_Reservas_Flota_Nombre,Tab_Reservas_Flota_Domin io,etc

espero haberme explicado
Gacias
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #2 (permalink)  
Antiguo 25/07/2008, 09:33
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: comprobar que un registro no se encuentre en una tabla

Cita:
Iniciado por Ragher Ver Mensaje
Hola gente, necesito un kapo en sql que me pueda ayudar con lo siguiente

Tengo una tabla donde guardo datos de un auto y otra tabla guardo los alquileres de esos autos. El campo en comun y unico entre las dos tamblas es la patente del auto(dominio). Ya tengo la consulta para ver que auto esta alquilado o no en un rango de fechas. Esta consulta la realizo solo en la tabla de alquileres.

La pregunta es como hago para saber que auto no esta alquilado en un rango de fechas siendo que quizas haya autos que no se encuantran dentro de la tabla de reservas x que no fueron alquilados nunca

En esta tabla guardo los datos del vehiculo:
tab_flotas
nombre, dominio,etc

en esta guardo los alquileres
tab_flotas_reservas
Tab_Reservas_Flota_Nombre,Tab_Reservas_Flota_Domin io,etc

espero haberme explicado
Gacias
Lo que estaria necesitando seria algo como


SELECT dominio from tab_flotas where not EXISTS (select Tab_Reservas_Flota_Dominio from tab_flotas_reservas where
('2008-07-01 00:00'<= Tab_Reservas_FechaSalida
and '2008-07-31 00:00' >= Tab_Reservas_FechaSalida) or
( '2008-07-01 00:00
' >= Tab_Reservas_FechaSalida AND '2008-07-31 00:00' <= Tab_Reservas_FechaVuelta))

pero no me anda
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #3 (permalink)  
Antiguo 25/07/2008, 12:20
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: comprobar que un registro no se encuentre en una tabla

me contesto a mi mismo...
la solución es esta:

SELECT DISTINCT dominio from tab_flotas where not EXISTS (SELECT Tab_Reservas_Flota_Dominio, Tab_Reservas_FechaSalida, Tab_Reservas_FechaVuelta from tab_flotas_reservas where
tab_flotas_reservas.Tab_Reservas_Flota_Dominio=tab _flotas.dominio
and ('2008-07-01 00:00'<= Tab_Reservas_FechaSalida
and '2008-07-31 00:00' >= Tab_Reservas_FechaSalida) or
tab_flotas_reservas.Tab_Reservas_Flota_Dominio=tab _flotas.dominio
and ( '2008-07-01 00:00' >= Tab_Reservas_FechaSalida AND
'2008-07-01 00:00' <= Tab_Reservas_FechaVuelta))
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #4 (permalink)  
Antiguo 25/07/2008, 12:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: comprobar que un registro no se encuentre en una tabla

Código:
SELECT dominio 
from tab_flotas 
where dominio not in 
     (select Tab_Reservas_Flota_Dominio 
        from tab_flotas_reservas 
        where  ('2008-07-01 00:00'<= Tab_Reservas_FechaSalida
           and '2008-07-31 00:00' >= Tab_Reservas_FechaSalida) or
           and ( '2008-07-01 00:00' >= Tab_Reservas_FechaSalida 
           AND  '2008-07-01 00:00' <= Tab_Reservas_FechaVuelta));

No tengo claro que tengas bien la selección de fechas pero te sobraba la condicion donde comparabas los dominios (tab_flotas_reservas.Tab_Reservas_Flota_Dominio=ta b _flotas.dominio) i te faltaba decir que es lo que no debe estar en (not in) lo he puesto en rojo.

Repito no cveo claro como seleccionas las fechas... dinos que periodo quieres controlar iy la diferencia entre Tab_Reservas_FechaSalida y Tab_Reservas_FechaVuelta.

Yo siempre sigo la convencion de nombrecampo/operador/valor en la clausula where.

Quim
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:04.