[MySQL]Czy jest takie zapytanie? |
[MySQL]Czy jest takie zapytanie? |
20.10.2014, 14:15:23
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) |
Witam. Mam takie 3 tabele (mniej wiecej):
groups: ID, name reservations: ID, id_group, status reserved: ID, id_reservation, id_resource, id_category, date_start, date_end Grupy moga rezerwowac jakis zasób (resource) z jakiejs kategorii. Moze byc taka sytuacja (ale nie musi i zbyt często nie będzie) ze w pewnym okresie czasu jakies dwie (lub wiecej) grup rezerwuja ten sam zasób z tej samej kategorii. Wtedy się nim dzielą. Szukam zapytania, które wybrałoby mi te dwie grupy oraz dzień od którego zaczyna się to współdzielenie zasobu. Wynik zapytania powinien wyglądać mniej więcej tak: [group 1, group 2, date] (data od której zaczyna się współdzielenie) Przykład: groups: 5, Grupa A 6, Grupa B reservations: 1, 5, accepted 2, 6, accepted reserved: 1, 1, 15, 10, 2014-10-25, 2014-10-30 2, 2, 15, 10, 2014-10-23, 2014-11-02 zapytanie powinno zwrócić 5, 6, 2014-10-25 (bo jest to data od której obie rezerwacje się na siebie nakładają) Zapytanie powinno ignorować sytuacje gdy jedna grupa zdubluje rezerwacje (czyli grupa 1 != grupa 2) Ma ktoś jakiś pomysł? Zależy mi na tym zeby to bylo zrobione po stronie MYSQLa Ten post edytował MateuszS 20.10.2014, 14:17:16 -------------------- O! Zimniok :P
|
|
|
20.10.2014, 14:34:07
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Przecież wystarczy zrobić odpowiedni warunek i później go zapisać w MySQL. Czyli:
1. ID 2. ID zasobu jest takie samo (res_id1 = res_id2) 3. Daty się pokrywają, czyli początek lub koniec pierwszego okresu zawiera się w drugim okresie (date1_start BETWEEN date2_start AND date2_end OR date1_end BETWEEN date2_start AND date2_end) 4. Są to różne rezerwacje (id1 != id2) I cała filozofia Ten post edytował sowiq 20.10.2014, 14:38:57 |
|
|
Wersja Lo-Fi | Aktualny czas: 24.09.2024 - 16:43 |