Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

precisa de atualização para consulta mysql para escolher o intervalo de datas para reserva de um quarto de hotel ou qualquer coisa

SELECT  *
FROM    room
WHERE   room_no NOT IN
        (
        SELECT  room_no
        FROM    booking
        WHERE   check_outdate >= @req_fdate
                AND check_indate <= @red_tdate
        )
        AND room_no NOT IN
        (
        SELECT  room_no
        FROM    reservation
        WHERE   check_outdate >= @req_fdate
                AND check_indate <= @red_tdate
        )

Preste atenção na ordem ou nos argumentos:@req_fdate aqui está a primeira data aqui (de ), @req_tdate é a última data (até ).

Para verificar a disponibilidade a partir de Aug 16 até Aug 19 , usa isto:
SELECT  *
FROM    room
WHERE   room_no NOT IN
        (
        SELECT  room_no
        FROM    booking
        WHERE   check_outdate >= '2010-08-16'
                AND check_indate <= '2010-08-19'
        )
        AND room_no NOT IN
        (
        SELECT  room_no
        FROM    reservation
        WHERE   check_outdate >= '2010-08-16'
                AND check_indate <= '2010-08-19'
        )