Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql][php] Problem z zapytnaiem
windman
post 7.08.2009, 08:21:08
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
skowron-line
post 7.08.2009, 08:44:00
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ł questionmark.gif


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
windman
post 7.08.2009, 09:43:36
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 ) *
a o BETWEEN kolega nie slyszał questionmark.gif


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 7.08.2009, 10:21:42
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 winksmiley.jpg


--------------------
Więcej: blog.juszczak.org
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 23:25