• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie SQL

VPS Starter Arubacloud
0 głosów
173 wizyt
pytanie zadane 5 grudnia 2020 w SQL, bazy danych przez lumix97 Nowicjusz (120 p.)

Witam! Mam problem z utworzeniem dobrego zapytanie SQL. Otóż mam taką część bazy (stworzylem na szybko w accessie, żeby łatwiej zobrazować).Baza

I chciałbym stworzyć zapytanie, które pokaże dostępne samochody w danym czasie (tabela events jest od wypożyczeń samochodów). Chodzi mi o to, żeby wybrać samochody dostępne w okresie podanym przez użytkownika (poprzez zmienne). Coś mi nie wychodzi stworzenie takiego zapytanie do bazy mam tylko coś takiego:

SELECT cars.*, events.*
FROM cars
      LEFT JOIN events ON events.id_car = cars.id_car

Z góry dziękuję za pomoc!

1 odpowiedź

0 głosów
odpowiedź 5 grudnia 2020 przez SzkolnyAdmin Szeryf (88,500 p.)
edycja 5 grudnia 2020 przez SzkolnyAdmin

Czy events.start_date i events.end_date to czas zarezerwowania samochodów? W takim razie szukasz przedziału dat poza przedziałem <events.start_date;  events.end_date>.

Użytkownik podaje w formularzu dwie daty – poczatek (data początkowa rezerwacji) i koniec (data końcowa rezerwacji). Oczywiście musisz zadbać, aby daty były prawidłowo podane (koniec>=poczatek; "=" bo rezerwacja może być na 1 dzień).

Piszesz:

SELECT cars.*, events.*

FROM cars

JOIN events ON events.id_car = cars.id_car

WHERE (poczatek<events.start_date AND koniec<events.start_date)

OR (poczatek>events.end_date AND koniec>events.end_date)

Może być problem, jak samochód jest rezerwowany kilka razy w tabli events, wtedy powyższe zapytanie może dać  fałszywy wynik (podany przez użytkownika przedział dat rezerwacji nie pokryje się z jednym wpisem, ale pokryje z innym), ale w tym przypadku lepiej niech wypowiedzą się spece od SQL-a.

Lepiej zrób w formularzu coś na kształt kalendarza, w którym dla danego dnia będą widoczne dostępne samochody. Tu już zapytanie będzie łatwiejsze i odporne na wyżej przedstawiony problem.

komentarz 5 grudnia 2020 przez lumix97 Nowicjusz (120 p.)
Tak, chodzi o to, że jeden samochód może być wiele razy rezerwowany w różnych datach i właśnie chodzi mi o to, żeby zrobić wyświetlenie dostępnych samochodów w zadanej dacie, ale właśnie do tego potrzebuję takiego zapytania :)

Podobne pytania

0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 8 maja 2020 w SQL, bazy danych przez Zelek Użytkownik (960 p.)
+2 głosów
2 odpowiedzi 252 wizyt
pytanie zadane 9 marca 2022 w SQL, bazy danych przez Czang Kai Shrek Obywatel (1,990 p.)

92,959 zapytań

141,921 odpowiedzi

321,152 komentarzy

62,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...