sql >> Database teknologi >  >> RDS >> Mysql

brug for opdatering til mysql-forespørgsel for at vælge datointerval for reservation af et hotelværelse eller noget

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
        )

Vær opmærksom på rækkefølgen eller argumenterne:@req_fdate her er den første date her (fra ), @req_tdate er den sidste dato (indtil ).

For at tjekke for tilgængelighed fra Aug 16 til Aug 19 , brug denne:

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'
        )


  1. Hvordan kan jeg fejlsøge, hvorfor den enkleste MySQL-forespørgsel returnerer falsk?

  2. måder at undgå globale temp-tabeller i oracle

  3. Jeg har brug for at auto_incremente et felt i MySQL, der ikke er primær nøgle

  4. Genbruger du SqlCommand?