Autor Zpráva
Sylar
Profil
Zdravím,
mám dvě tabulky

Chaty
==
- id, nazev, cena

Rezervace
=======
- id, id_chata, termin_od, termin_do

Potřeboval bych pokud uživatel zadá rozpětí termínu, aby mu systém vyhodil pouze volné termíny, tzn. chaty, které nemají v daném termínu udělanou rezervaci. Nějak mi nenapadá žádný způsob, jak toho docílit pokud jsou data uložena tak jak jsou :(
Kajman
Profil
Něco jako
SELECT ch.*
FROM   chaty ch
       LEFT JOIN (SELECT DISTINCT id_chata
                  FROM   rezervace r
                  WHERE  r.termin_od < '$hledam_do'
                         AND r.termin_do > '$hledam_od') kolize
              ON ch.id = kolize.id_chata
WHERE  kolize.id_chata IS NULL 
Nejsem si jistý, jestli distinct ovlivní rychlost a zda pozitivně nebo negativně.
Sylar
Profil
Kajman:
Super, díky, vypadá to, že to funguje v pohodě.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0