Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql][php] Problem z zapytnaiem
windman
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

Ostrzeżenie: (0%)
-----


Wítam,

ten same temet omykowo założyłem w dziale MySql, piszę omyłkowo bo samo sql chyba problemu nie rozwiąże, a może??

nie mogę sobie poradzić z jednym zapytaniem...

Mam tabelę o strukturze:
id
hotelId
pokojId
data

W polu data zapisywana jest data dla której dany pokój jest wolny.

Zapytanie ma pobrać wolne pokoje np. dla okresu od 2009-05-01 do 2005-05-03.
Problem w tym że te trzy wolne dni z rzędu muszą być dla jednego pokoju, czyli chce otrzymać wszystkie pokoje które są wolne w dni z wybranego przedziału (wszystkie trzy dni).

zapytanie:
Kod
SELECT * FROM tabela WHERE (data>=date('2009-05-01') AND data<=date('2009-05-03'))

zwróci mi pokoje, które są wolne 01 albo 02 albo 03, ja muszę mieć tylko te które są wolne 01 oraz 02 oraz 03.

Jakś podpowiedź?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


a o BETWEEN kolega nie slyszał (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
windman
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

Ostrzeżenie: (0%)
-----


Cytat(skowron-line @ 7.08.2009, 09:44:00 ) *


z BETWEEN to mogę sobie moje zapytanie inaczej napisać, a rozwiązanie mojego problemu?
Go to the top of the page
+Quote Post
motylo
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 5
Dołączył: 13.07.2008
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


zapytanie z podzapytaniem, pisze w teorii, gdyż nie mam tego teraz gdzie sprawdzic

  1. SELECT *
  2. FROM tabela WHERE (data>=date('2009-05-01') AND data<=date('2009-05-03')) AND (
  3. SELECT COUNT(*) FROM tabela WHERE (data>=date('2009-05-01') AND data<=date('2009-05-03'))
  4. )>=TO_DAYS(date('2009-05-03'))-TO_DAYS(date('2009-05-01'))


coś w tym stylu pod MySQL -> wyświetla te dni gdzie liczba wystąpień tego samego zapytania (wolnych pokoi)
jest większa lub równa od różnicy dat (dni między);

Trzeba sprawdzić empirycznie no i chyba MySQL większy od 3.23 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 04:58